Функция изменения размера 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