我有一个代码,可以对图像进行篡改并将其发送到浏览器。PHP创建图像文件,但只适用于本地开发,而不适用于远程服务器
但它不能正常工作......只有当我要求它将图像输出到文件而不是浏览器时。
我不认为问题是我的代码,因为这个问题只发生在真正的服务器上;在我的电脑里它的工作很完美。
代码:
$img = $_GET['img'];
ini_set('allow_url_fopen', 'on');
$info = getimagesize($img);
header('Content-type: '.image_type_to_mime_type($info[2]));
Fotos::redimensiona($img, null, Fotos::MINIGAL_WIDTH, Fotos::MINIGAL_HEIGHT, false);
照片:: redimensiona():
//[...] a whole bunch of code calculating dimensions, they just works
// $funcImage is like 'imagejpeg'/'imagepng'/'imagegif', depends on file
if ($arquivo) {
$funcImage($thumb, "$final.$ext");
return "$final.$ext";
}
else {
$funcImage($thumb);
}
记住:工作地方发展,但不是做远程Web服务器上。
[编辑]
如果我评论的header
线,二进制代码印;并且如我所料,当我更改原始图像时,此代码会发生变化。
但随着header
火狐显示我的网页的URL(如http://www.sabianoar.com.br/novosabia/inc/phpImg.php?img=awful_escaped_long_path.jpeg
),如果我这样做CTRL+I
它告诉我这是一个0x0大小的JPEG,像10kb。
歌剧显示我一个空的图像,因为它会怎么做,如果我放在了错误的src
的<img>
,即
[EDIT2] EyeOfGnome说:“没有一个JPEG文件:始于0xef为0xBB”当我尝试保存并打开输出(通常将其保存到.jpeg文件中)。
当“无法正常工作”时会发生什么?它错误吗?没有输出?破碎的图像? – NSSec 2009-08-28 05:10:08
看看编辑。 =]我刚刚添加了这个信息... – igorsantos07 2009-08-28 05:10:54