У меня это действие в контролере
public function upload() { // getting all of the post data $file = array('image' => Input::file('image')); //return $file; // setting up rules $rules = array('image' => 'required'); //mimes:jpeg,bmp,png and for max size max:10000 // doing the validation, passing post data, rules and the messages $validator = Validator::make($file, $rules); if ($validator->fails()) { // send back to the page with the input data and errors // return Redirect::to('upload')->withInput()->withErrors($validator); return "error validation"; } else { // checking file is valid. if (Input::file('image')->isValid()) { $destinationPath = 'myuploads'; // upload path $extension = Input::file('image')->getClientOriginalExtension(); // getting image extension $fileName = Input::file('image')->getClientOriginalName(); // $fileName = rand(11111,99999).'.'.$extension; // renameing image Input::file('image')->move($destinationPath, $fileName); // uploading file to given path return "upload success"; } else { // sending back with error message. Session::flash('error', 'uploaded file is not valid'); return "error"; } } }
Он работает для небольшого размера файла, такого как 2 МБ, но не будет работать для размера файла 4 МБ. За 4 МБ или более он получает ошибку при проверке. В коде выше есть этот код
if ($validator->fails()) { return "error validation"; }
Он дает эту выборочную error validation
ошибок error validation
. Я уже работал над настройкой php.ini для максимального ограничения загрузки и ограничения по почте.
В других ответах говорится только о директиве php.ini .
Я хотел бы дать ответ с учетом как php.ini, так и правила валидации Laravel
Сначала проверьте свой php.ini
Для upload_max_filesize
и post_max_size
и изменения в желаемый размер файла
upload_max_filesize = 100M post_max_size = 100M
У вас будет такое правило
public static $updaterules = array( 'uploadedimage' => 'image|max:5000' );
Дополнительная информация :
Вы должны проверить формат файла для изображения
'uploaded' => 'mimes:jpeg,bmp,png'
Узнайте больше о валидации Laravel здесь
Поскольку вопросник не заметил, какой файл php.ini используется сервером. Я соответствующим образом обновляю свой ответ, поэтому он может быть полезен для тех, кто имеет схожие проблемы в будущем
Чтобы найти полную конфигурацию файла php.ini, который в настоящее время используется вашим сервером.
Для Linux
php -i | grep php.ini
Для Windows
php -i | find /i "Configuration File"
Из файла php
т.е.
<?php phpinfo(); ?>
отредактируйте файл php.ini
и установите:
memory_limit = 32M upload_max_filesize = 70M post_max_size = 100M
и перезапустите apache.
Ну, я нашел ответ. То, что упомянуто выше, чтобы внести изменения в php.ini о upload_max_filesize
и post_max_size
– это единственное, что может решить проблему, упомянутую в вопросе.
Единственная проблема заключалась в том, что я использую wamp и, видимо, wamp имеет несколько файлов php.ini один в папке php и один в папке apache. Я внес изменения в папку PHP, когда нужно внести изменения в папку внутри Apache.
Проверьте max_file_uploads
и max_post_size
в php.ini
. Это показывает из phpinfo()