我创建了一个脚本来调整图像大小,并在<img>
标记中动态插入,如:
<img src="includes/thumb.php?src=<?=$filename;?>&w=389&q=100&f=jpg" />
在thumb.php中,我使用php gd函数调整图像大小,最后调整include
,以便显示调整了图像的大小调整后的图像,其中在<img>
标记内调用了thumb.php。 / p>
这是我如何包含thumb.php中的图像:
//header('Content-Type: image/' . $format);
//header('Content-Disposition: inline;');
include $resized_image; // which is now resized and saved
然而,它并不总是适用于所有图像,有时我会收到消息:
Parse error: syntax error, unexpected ']' in xxxxx\thumbs\
e58b3c96d4f2ccc298d68cbac7cd97a0.jpg on line 326
因此可以看出,当我尝试include
时,解析错误会出现在新调整大小的图像中。但是当我通过双击直接打开图像时,它显示正常并且是有效的图像。
任何人都可以告诉我为什么PHP正在像PHP代码一样解析图像文件,我想避免这种情况而是显示图像?
我想做的只是显示如下调整大小的图像:
<img src="includes/thumb.php?src=<?=$filename;?>&w=389&q=100&f=jpg" />
答案 0 :(得分:1)
要将文件发送到浏览器,您需要使用readfile($resized_image)
,因为include $resized_image
会尝试将文件解析为PHP脚本,这实际上非常危险!
另请参阅:readfile()
答案 1 :(得分:1)
请改用readfile()
。 include
是错误的工具,也可能导致安全问题。
答案 2 :(得分:1)
使用php将图像发送到浏览器我会这样做:
header("Content-Type: image/jpeg");
try
{
$image = fopen('imagepath', "rb");
}
catch (Exception $e)
{
//foobar
}
fpassthru($image);
fclose($image);
exit();
答案 3 :(得分:0)
我认为应该更像 - &gt; echo $ resized_image;在thumb.php中