对于一个客户,我构建了一个简单的脚本,可以上传多个文件(图像),调整它们的大小,将它们存储在一个临时文件夹中,然后再将它们移动到它们的目的地。
调整大小是使用 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 像素宽。
有没有人有这方面的工作?在这一点上,我想知道如果客户端需要这么多内存来存储这些图像,将客户端放在共享主机上是否明智。