我正在制作一个相册,用户可以在其中上传自己的照片。我希望用户能够将任何尺寸的图片发送到网站,如果超过 5Mb,则使用 php 上传类将其处理为 5Mb。
该文件的上传适用于任何小于 php.ini 文件中的配置(30Mb)的图片大小。原始图片将上传到临时文件夹进行处理。
我可以轻松地处理图片以创建拇指和主图片,但是当我想生成大文件(处理为 5Mb 供用户下载)时,它不起作用。
这是我用于处理图片的代码段:
$handle = new upload("../".$path_picture_temp.$this->imgName);
if ($handle->uploaded) {
$handle->image_convert = 'jpg';
$handle->jpeg_size = 5242880;
$handle->process("../".$path_picture_full);
}
if ($handle->uploaded) {
$handle->image_resize = true;
$handle->image_x = 231;
$handle->image_y = 153;
$handle->image_ratio_crop = true;
$handle->image_convert = 'jpg';
$handle->jpeg_quality = 95;
$handle->process("../".$path_picture_thumb);
}
if ($handle->uploaded) {
$handle->image_resize = true;
$handle->image_x = 1000;
$handle->image_y = 1000;
$handle->image_ratio = true;
$handle->image_convert = 'jpg';
$handle->jpeg_quality = 95;
$handle->process("../".$path_picture_main);
}
当我上传 6Mb 以下的图片时,即使它很慢,它也可以工作,但如果我上传超过 6Mb 的图片,它不起作用,它甚至不处理任何东西。
当我骑第一部分来处理大图片时,对于任何文件大小,一切正常。有谁知道为什么会发生这种情况?
如果您使用的是 GD 和 imagcreatefromjpeg() 函数,这可能会解决您的问题:PHP GD imagecreatefromjpeg 无法处理大尺寸图像?