我正在编写一个PHP脚本来动态调整图像大小。图像ID(来自MySQL数据库)传递方式如下:“http://localhost/getimage/1.htm”。
当我使用上面的URL直接进入scrippt时,图像完全吐出来。但出于某种原因(仅限Chrome),当我将该URL链接到标签时,它开始表现得很奇怪。当页面首次加载时,图像加载正常,但加载条旋转约5秒钟,图像突然消失,Chrome显示“无法加载资源”错误。
有没有人知道可能导致这种情况的原因,如果是,如何阻止它?我认为它可能与AdBlocker有关,但是我已经禁用了它并且它正在发生。
干杯。
编辑:这是我正在使用的代码:
header('Content-Type:'.$file['type']);
header('Content-Length: ' . $file['bytes']);
// Get size of original image
list($o_width, $o_height) = getimagesize($file['src']);
// Default width and height
if (is_null($width)) {
$width = $o_width;
}
if (is_null($height)) {
$height = $width;
}
// Create image frame
$image_p = imagecreatetruecolor($width, $height);
// Generate image depending on source type
switch ($file['type']) {
case "image/jpeg":
default:
$image = imagecreatefromjpeg($file['src']);
break;
case "image/gif":
$image = imagecreatefromgif($file['src']);
break;
case "image/png":
$image = imagecreatefrompng($file['src']);
break;
}
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $o_width, $o_height);
// Output
imagejpeg($image_p, null, 100);
exit;
如您所见,我正在设置内容类型。如果它是htm扩展,令人困惑,它会解释为什么图像正确加载,然后自行卸载吗?
答案 0 :(得分:1)
这不仅仅是Chrome,但恕我直言,你在开头有这个是错误的:标题('Content-Length:'。$ file ['bytes']);因为您不知道实际的文件大小,因为您使用imagejpeg($ image_p,null,100)动态创建图像;尝试评论标题('Content-Length ...行,它可能会修复它。