我们有一个使用Andrew Valums的ajax文件上传器的Web应用程序,如果我们同时启动5-10个图像上传,往往至少有2或3个会导致相同的gd错误“Corrupt JPEG data”。
然而,在我们的旧测试服务器或本地开发环境中并没有出现这种情况,只有在我们的新生产服务器上才有。
服务器上的文件大小与我本地机器上的原始文件大小相同,因此它完成了上传,但我认为数据被服务器损坏了。
我可以通过删除它们并重新上传或通过FTP手动上传来“修复”损坏的文件。
我们在Godaddy上共享主机,并在一个新盒子上(由我设置,所以可能解释了很多问题:)CentOS 5.5+,Apache 2.2.3,PHP 5.2.10)开始遇到这个问题。
您可以在此处查看一些好的和坏的示例图片。http://174.127.115.220/temp/pics.zip 当我对它们进行BinDiff时,我看到了一致的模式,损坏总是64字节块,虽然损坏块之间的距离不是恒定的,但数字4356经常出现。
我真的认为我们可以排除互联网作为错误检查和TCP的重传非常可靠,进一步的是似乎没有浏览器版本之间的区别,或者如果我关闭反病毒和防火墙。
所以我正在选择 Apache / PHP 的配置?
Warning: imagecreatefromjpeg() [function.imagecreatefromjpeg]:
gd-jpeg, libjpeg: recoverable error: Corrupt JPEG data:
47 extraneous bytes before marker 0xd9 in ....
然而,在我们的旧测试服务器或本地开发环境中并没有出现这种情况,只有在我们的新生产服务器上才有。
服务器上的文件大小与我本地机器上的原始文件大小相同,因此它完成了上传,但我认为数据被服务器损坏了。
我可以通过删除它们并重新上传或通过FTP手动上传来“修复”损坏的文件。
我们在Godaddy上共享主机,并在一个新盒子上(由我设置,所以可能解释了很多问题:)CentOS 5.5+,Apache 2.2.3,PHP 5.2.10)开始遇到这个问题。
您可以在此处查看一些好的和坏的示例图片。http://174.127.115.220/temp/pics.zip 当我对它们进行BinDiff时,我看到了一致的模式,损坏总是64字节块,虽然损坏块之间的距离不是恒定的,但数字4356经常出现。
我真的认为我们可以排除互联网作为错误检查和TCP的重传非常可靠,进一步的是似乎没有浏览器版本之间的区别,或者如果我关闭反病毒和防火墙。
所以我正在选择 Apache / PHP 的配置?
nginx
和lighttpd
可供选择。 - Blender