可怕的“警告:imagecreatefromjpeg():'/ tmp / filename'在/phpfile.php中的xxx行上不是有效的JPEG文件”
image
image-processing
php
4
0

当有人将图像上传到我们的网站时,我一直收到此警告:

警告:imagecreatefromjpeg()[function.imagecreatefromjpeg]:gd-jpeg:JPEG库报告了不可恢复的错误:在第220行的/home/pathremoved/includes/snapsutils.php中

警告:imagecreatefromjpeg()[function.imagecreatefromjpeg]:'/ tmp / phpiw4MFk'在第220行的/home/pathremoved.php中不是有效的JPEG文件。

警告:imagesx():提供的参数不是/home/pathremoved.php中第222行的有效图像资源

警告:imagesy():提供的参数不是/home/pathremoved.php中第223行的有效图像资源

警告:imagecreatetruecolor()[function.imagecreatetruecolor]:/home/pathremoved.php中第240行的图像尺寸无效

警告:imagecopyresampled():提供的参数不是第242行上的/home/pathremoved.php中的有效图像资源。

这仅在某些图像上发生,当在任何程序中打开时都可以,它甚至可以上传到我在localhost上拥有的站点的版本,没有问题...我用Google搜索了一下,但没有任何结论...

注意php upload_max大小为5M,post_max_size为5M。这不是上传或内存问题。我已经测试了4M图像,没有问题。

任何帮助表示赞赏。

参考资料:
Stack Overflow
收藏
评论
共 2 个回答
高赞 时间 活跃

在Google上进行了一些挖掘之后,我发现了这个错误报告 。似乎GD库比其他程序对错误的JPEG文件的容忍度低。建议的解决方案是将GD设置为在处理图像之前忽略JPEG错误,如下所示:

ini_set("gd.jpeg_ignore_warning", 1);

希望这对您有用。您可能会遇到的另一个潜在问题是内存问题。似乎GD一旦打开就将所有图像作为位图保存在内存中。这意味着5MB的映像实际上会消耗的内存多于单个PHP线程所允许的内存,从而导致致命错误。我在上传某些图片时遇到了这个问题,并且不得不减小允许解决该问题的最大文件大小。

祝您好运,希望对您有所帮助。

收藏
评论

我也面临同样的问题。

我们使用以下代码解决了此问题,它对我有用,

...
$image = @ImageCreateFromJpeg($image_name);
if (!$image)
{
   $image= imagecreatefromstring(file_get_contents($image_name));
}
...

希望这对您有帮助... :)

收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题

关于我们

常见问题

内容许可

联系我们

@2020 AskGo
京ICP备20001863号