Я обрабатываю поле файла с помощью ajax-запроса (FormData) для отправки изображения на сервер.
Вот мой обработчик php ajax
public function onUploadAvatar() { $photo = Request::file('avatar'); $avatar = new Controllers\AvatarController( $photo ); $validator = $avatar->validator(); if ( $validator->fails() ) { return [ 'success' => false, 'validationErrors' => $validator->errors() ]; } $moved = $avatar->attach(); if ( $moved !== false ) { return [ 'success' => true, 'avatarPath' => $moved ]; } }
Ниже мой метод проверки достоверности
public function validator() { $input = [ 'avatar' => $this->photo ]; $rules = [ 'avatar' => 'image|mimes:jpeg,jpg,png|max:1048576' ]; $messages = [ 'mimes' => 'invalid format', 'max' => 'please 1MB', 'image' => 'please image' ]; $validator = Validator::make( $input, $rules, $messages ); return $validator; }
Когда я отправляю файл с размером меньше max
, у меня есть ожидаемый ответ:
ПРОБЛЕМА
Но когда я загружаю файл с более чем max
, у меня есть эта (ответная) ошибка:
Правила проверки прав друга работают.
ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ
Возврат некоторых данных после запроса:
return [ 'photo' => Request::file('avatar'), 'hasFile' => Request::hasFile('avatar'), 'extension' => Request::file('avatar')->getClientOriginalExtension(), 'size' => Request::file('avatar')->getClientSize() ];
ОТВЕТЫ:
Файл меньше max
:
{"photo":{},"hasFile":true,"extension":"jpg","size":900498}
Файл с max
:
{"photo":{},"hasFile":false,"extension":"jpg","size":0}
РЕШЕНИЕ
Я ожидал некоторой обратной связи, поскольку файл «file.jpg» превышает вашу директиву upload_max_filesize ini для ошибок php.ini, связанных с максимальным размером. Только увеличилась директива upload_max_filesize и работала. Больше проблем.