在PHP中上传大图片时如何解决内存使用问题

时间:2019-04-02 12:53:14

标签: php out-of-memory image-uploading large-files

我正在处理上传脚本,但是在上传大图像时遇到了一些麻烦。

我们的客户需要上传大约20000x20000像素(是的,数千个)的文件。更糟的是,他的客户也必须做到这一点。

现在上传本身不是问题,但是图像需要在浏览器中加载,因此我们需要一个较小的版本。

以下代码可以工作,但是它使用了太多的RAM

$imgString = file_get_contents($file['tmp_name']);
$image = imagecreatefromstring($imgString);
$tmp = imagecreatetruecolor($width, $height);
$color = imagecolorallocate($tmp, 255, 255, 255);
imagefill($tmp, 0, 0, $color);
imagecopyresampled($tmp, $image, 0, 0, 0, 0, $width, $height, $oldWidth, $oldHeight);

但是它占用了过多的RAM内存,导致崩溃。我们的VPS(当前)目前只有4gb,其中3,5gb分配给Apache进行测试(当然不建议用于生产环境)。

对于此调整大小过程,您有何建议而不是这样做呢?我的老板真的不喜欢第三方选项,我们不能像Uploadcare那样托管自己。

0 个答案:

没有答案