当有人将图片上传到我们的网站时,我一直收到此警告:
警告:imagecreatefromjpeg() [function.imagecreatefromjpeg]: gd-jpeg:JPEG库报告 不可恢复的错误:in /home/pathremoved/includes/snapsutils.php 在第220行
警告:imagecreatefromjpeg() [function.imagecreatefromjpeg]: '/ tmp / phpiw4MFk'不是有效的JPEG 文件在/home/pathremoved.php上 220
警告:imagesx():提供的参数 不是有效的图像资源 第222行/home/pathremoved.php
警告:imagesy():提供的参数 不是有效的图像资源 第223行/home/pathremoved.php
警告:imagecreatetruecolor() [function.imagecreatetruecolor]: 图片尺寸无效 第240行/home/pathremoved.php
警告:imagecopyresampled(): 提供的参数不是有效的图像 /home/pathremoved.php上的资源 第242行
这只发生在某些图像上,当在任何程序中打开时都可以,它甚至上传到我在localhost上的网站版本没有问题...我google了一下但没有找到结论... < / p>
注意php upload_max大小为5M,post_max_size为5M。这不是上传或内存问题。我已经测试了没有问题的4M图像。
任何帮助表示感谢。
答案 0 :(得分:16)
在Google上进行了一些挖掘之后,我找到了this bug report。似乎GD库对错误的JPEG文件的容忍度低于其他程序。建议的解决方案是在处理图像之前将GD设置为忽略JPEG错误,如下所示:
ini_set("gd.jpeg_ignore_warning", 1);
希望这对您有用。您可能遇到的另一个潜在问题是与记忆有关。看起来GD一旦打开就将所有图像保存在内存中作为位图。这意味着5MB映像实际上可以比允许单个PHP线程消耗更多内存,从而导致致命错误。我有一些图片上传的问题,不得不减少我允许解决问题的最大文件大小。
祝你好运,希望有所帮助。
答案 1 :(得分:2)
我也面临同样的问题。
我们使用下面的代码来修复此问题,它对我有用,
...
$image = @ImageCreateFromJpeg($image_name);
if (!$image)
{
$image= imagecreatefromstring(file_get_contents($image_name));
}
...
希望这有助于你...... :)
答案 2 :(得分:-2)
此图像在Firefox(3.6.10)中导致对服务器的永不停止的请求。 Firefox说它包含错误。