文件超过 6Mb 的 PHP 上传类问题


Php Upload Class issue with file over 6Mb

我正在制作一个相册,用户可以在其中上传自己的照片。我希望用户能够将任何尺寸的图片发送到网站,如果超过 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 无法处理大尺寸图像?