0

我正在制作一个相册,用户可以在其中上传自己的照片。我希望用户能够向网站发送任何大小的图片,如果超过 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 的图片,它就不起作用,它甚至不处理任何东西。

当我开始处理大图片的第一部分时,一切都适用于任何文件大小。有谁知道为什么会这样?

4

1 回答 1

0

如果您使用 GD 和 imagcreatefromjpeg() 函数,这可能会解决您的问题: PHP GD imagecreatefromjpeg cant handle big size image?

于 2012-05-24T19:57:25.993 回答