当有人将图片上传到我们的网站时,我一直收到此警告:
Warning: imagecreatefromjpeg() [function.imagecreatefromjpeg]: gd-jpeg: JPEG library reports unrecoverable error: in /home/pathremoved/includes/snapsutils.php on line 220
Warning: imagecreatefromjpeg() [function.imagecreatefromjpeg]: '/tmp/phpiw4MFk' is not a valid JPEG file in /home/pathremoved.php on line 220
Warning: imagesx(): supplied argument is not a valid Image resource in /home/pathremoved.php on line 222
Warning: imagesy(): supplied argument is not a valid Image resource in /home/pathremoved.php on line 223
Warning: imagecreatetruecolor() [function.imagecreatetruecolor]: Invalid image dimensions in /home/pathremoved.php on line 240
Warning: imagecopyresampled(): supplied argument is not a valid Image resource in /home/pathremoved.php on line 242
这只发生在某些图像上,当在任何程序中打开时都可以,它甚至可以毫无问题地上传到我在本地主机上的网站版本……我用谷歌搜索了一下,但没有找到任何结论……
注意 php upload_max 大小为 5M,post_max_size 为 5M。这不是上传或内存问题。我已经使用 4M 图像进行了测试,没有问题。
感谢任何帮助。
最佳答案
在 Google 上搜索了一下后,我找到了 this bug report .似乎 GD 库对错误的 JPEG 文件的容忍度低于其他程序。建议的解决方案是在处理图像之前将 GD 设置为忽略 JPEG 错误,如下所示:
ini_set("gd.jpeg_ignore_warning", 1);
希望这对您有用。您可能遇到的另一个潜在问题与内存有关。似乎 GD 在打开后将所有图像作为位图保存在内存中。这意味着一个 5MB 的图像实际上可以消耗比单个 PHP 线程所允许的更多的内存,从而导致 fatal error 。我在上传一些图片时遇到了这个问题,不得不减小我允许的最大文件大小来解决这个问题。
祝你好运,希望对你有所帮助。
关于php - 可怕的 "Warning: imagecreatefromjpeg() : '/tmp/filename' 不是一个有效的 JPEG 文件 in/phpfile.php on line xxx”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3901455/