【问题标题】:php resize function not working when file greater than 2 MB [duplicate]当文件大于2 MB时,php调整大小功能不起作用[重复]
【发布时间】:2015-03-28 07:24:07
【问题描述】:

我正在使用以下函数来上传图片文件并调整大小。

    public function upload()
    {
        include_once 'wideimage/WideImage.php';

        $ext = $this->detect_type();

        $file_name = 'uploads/' . time() . $ext;

        if( move_uploaded_file($_FILES['file']['tmp_name'], $file_name ) )
        {
            $data[] = array(
                'status' => true,
            );
        }

        else
        {
            $data[] = array(
                'status' => false,
            );
        }    

        $image = WideImage::load($file_name);

        var_dump($image);

        $resizedImage = $image->resize(639, 554)->saveToFile( 'uploads/' . time() . '_small' . $ext );

        $thumb = 'uploads/' . time() . "_thumb" . $ext;

        $data[] = array(
            'thumb' => $thumb
        );

        $this->session->set_userdata('thumb', $thumb);
        $resizedImage = $image->resize(566, 566)->saveToFile($thumb);

        echo json_encode($data);

    }

我非常适合小于 2 MB 的文件。但是当我上传大于 2 MB 的图像时,它不起作用。我转储 $image 对象创建它什么都不返回。

图片正在上传完美上传到服务器,但没有调整大小。请提出解决方案。

我正在使用这个图片库http://wideimage.sourceforge.net/

php.ini设置是

post_max_size = 32MB;
upload_max_size = 32MB;
max_execution_time = 300;
max_input_time = 100;

编辑: 图像完美上传到服务器问题仅在文件大小大于 2 MB 时出现。

当文件大小小于 2MB 时 var_dump($image) 输出

object(WideImage_TrueColorImage)[16]
  protected 'handle' => resource(48, gd)
  protected 'handleReleased' => boolean false
  protected 'canvas' => null
  protected 'sdata' => null

当大于 2MB 时,它什么也不返回

【问题讨论】:

  • 请看我更新了问题
  • 您的标题仍然显示“上传错误”,并且 “它不起作用” 不是一个充分的问题描述。
  • @HoboSapiens 更新标题

标签: php image-uploading wideimage


【解决方案1】:

你应该检查你的配置:

PHP change the maximum upload file size

我的猜测是您保留了默认值,并且只允许上传最大 2MB。

【讨论】:

    【解决方案2】:

    如果图片可以完美上传到服务器但没有调整大小 - 检查 php.ini(或 .htaccess)中的 memory_limit 并尝试增加它。

    【讨论】:

    • 增加 memory_limit(从 16MB -> 128MB 更改;我上传的 img 大小:3.6MB)是我的解决方案。谢谢
    【解决方案3】:

    您的php.ini 正在限制最大文件大小。修改php.ini值:

    ; Maximum allowed size for uploaded files.
    upload_max_filesize = 400M
    
    ; Must be greater than or equal to upload_max_filesize
    post_max_size = 400M
    

    【讨论】:

    • 您不需要为此设置荒谬的值,例如 400MB。对于图片,5MB 就足够了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-23
    • 2011-07-26
    • 2012-11-10
    • 1970-01-01
    • 1970-01-01
    • 2011-02-05
    相关资源
    最近更新 更多