Функция изменения размера php не работает, если файл больше 2 МБ

Я использую следующую функцию, чтобы загрузить файл изображения и изменить его размер.

    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 МБ. Но когда я загружаю изображения размером более 2 МБ, это не сработало. Я помещаю созданный объект $image, он ничего не возвращает.

Изображение загружается идеально, загружается на сервер, но без изменения размера. Просьба предложить решение для этого.

Я использую эту библиотеку изображений http://wideimage.sourceforge.net/

Настройкиphp.ini

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

Изменить: Изображение отлично загружается на сервер проблема возникает только при изменении размера, когда размер файла превышает 2 МБ.

Когда размер файла меньше 2 МБ var_dump($image) выходы

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

в то время как когда больше чем 2 MB это ничего не возвращает

3 ответа

Если изображение отлично загружается на сервер, но не изменяет его размер, проверьте memory_limit в php.ini (или.htaccess) и попробуйте увеличить его.

Вы должны проверить свою конфигурацию:

PHP изменить максимальный размер загружаемого файла

Я предполагаю, что вы оставили значения по умолчанию, и допускается загрузка только до 2 МБ.

Ваш 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
Другие вопросы по тегам