在我的网站上,用户可以上传自己的照片。php 代码将它们存储在图像中,制作一个缩影,重命名它们并将它们存储在网站上。照片必须小于 2MB,但一位用户最近告诉我,他在尝试上传 900KB 的照片时遇到了这个致命错误“允许的内存大小为 67108864 字节已用尽” (您可以猜到,这是一张大而宽的照片,但压缩良好的JPEG)。
在我的共享托管服务器上,我无法更改 php.ini。上传代码当前如下所示:
$source = imagecreatefromjpeg($value['tmp_name']);
$width_source = imagesx($source);
$height_source = imagesy($source);
$max = max($width_source,$height_source);
$ratio = $max/min($max,1000);
$width_destination = $width_source/$ratio;
$height_destination = $height_source/$ratio;
$width_miniature = 100*$width_source/$height_source;
$height_miniature = 100;
$destination = imagecreatetruecolor($width_destination, $height_destination);
$adress = '/home/photos/photo'.$id.'.jpg';
imagecopyresampled($destination, $source, 0, 0, 0, 0, $largeur_destination, $hauteur_destination, $largeur_source, $hauteur_source);
imagejpeg($destination, $adress);
chmod($adresse, 0644);
$miniature = imagecreatetruecolor($width_miniature, $height_miniature);
etc etc to copy miniature
是否有另一种上传大照片或绕过 php 内存限制的方法/方法?