3

对于一个客户,我构建了一个简单的脚本,可以上传多个文件(图像),调整它们的大小,将它们存储在一个临时文件夹中,然后再将它们移动到它们的目的地。

调整大小是使用 PHP 的 GD 完成的,因为 Imagick 不可用。

这些图像每张大约 2/4 MB,客户一次上传大约 30 张图像。我使用了 HTML5 的 multiple="" 属性,一切正常。

在测试中一切正常,因为我使用了 Windows 标准壁纸图像。

我找不到问题的根源。当上传超过 1 张图片时,脚本调试失败告诉我它确实上传了第二张图片但不会调整大小。

我检查了图像的内存使用情况,每个图像大约105724352 字节

我的 PHP ini 设置:

max_execution_time = 300     
max_input_time = 600    
memory_limit = 200M      

所以你在第二张图片中看到内存达到了极限,使我的脚本停止了。那是对的吗?

如果是这样,升级内存限制有多明智?

提前致谢!

编辑:

现在看来 GD 函数imagecreatefromjpeg无法处理分辨率大于 3500 像素宽的文件,我的文件大于 5000 像素宽。

有没有人有这方面的工作?在这一点上,我想知道如果客户端需要这么多内存来存储这些图像,将客户端放在共享主机上是否明智。

4

1 回答 1

3

所以你在第二张图片中看到内存达到了极限,使我的脚本停止了。那是对的吗?

检查(**nix 系统)下的 Apache 错误日志/var/log/apache2/error.log,看看它是否真的是问题所在。

如果是这样,升级内存限制有多明智?

您不应在一个脚本中处理多个图像操作。为每一个进行ajax查询,在单独的实例中处理它们。

于 2012-06-13T15:01:54.673 回答