0

我正在使用以下功能上传图像文件并调整大小。

    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 时,它什么也不返回

4

3 回答 3

1

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

于 2015-01-29T07:01:39.880 回答
1

您应该检查您的配置:

PHP更改最大上传文件大小

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

于 2015-01-29T06:42:58.887 回答
0

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
于 2015-01-29T06:43:17.423 回答