PostTooLargeException в ValidatePostSize.php строка 22 laravel
Я пытаюсь загрузить форму, содержащую изображения тоже. Когда я его представлю. он показывает эту ошибку
PostTooLargeException in ValidatePostSize.php line 22:
Как решить эту проблему?
2 ответов
проверьте следующие параметры в вашем php.ini-файл.
у меня была эта проблема несколько раз, и это обычно потому, что max_file_size установлен в 2M по умолчанию.
- аргумент max_file_size
- upload_max_filesize
- установка post_max_size
**редактировать Меня спросили, как проверить размер файла с помощью метода validate в Laravel перед отправкой файла на PHP и предупреждением пользователя о большом файле. Вы можете и вот как:
1. Создайте предупреждение об ошибке для экрана Вот как выглядит моя. Я использую стиль bootstrap 3. Добавьте что-то подобное в свой макет (он появится, только если у вас есть ошибка).
@if (count($errors) > 0)
<div class="alert alert-danger">
<strong>Whoops!</strong> There were some problems with your input.<br><br>
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
2. Определите валидатор, который вы будете использовать в готовые классы проверка ** Перейдите в свой проект / ресурсы/lang/en / валидаторы.php вы найдете все проверки, доступные в laravel. Ты увидишь, что на них это надето. там:
'max' => [
'numeric' => 'The :attribute may not be greater than :max.',
'file' => 'The :attribute may not be greater than :max kilobytes.',
'string' => 'The :attribute may not be greater than :max characters.',
'array' => 'The :attribute may not have more than :max items.',
],
это правило проверки, которое я использовал для проверки размера файла.
**4. Создайте файл запроса **
php artisan make:request yourRequest
**5. обновите файл запроса ** Перейдите к yourProject / app / Http / запросы / yourRequest.php и добавьте следующее В метод правил "file_name" = > "max:10" обновите 10 до значения вашего лимита в килобайтах:
public function rules()
{
return [ 'profile_pic' => 'required|image|mimes:jpg|max:10',
];
}
6. Сделайте свой запрос с тем, какой файл запроса управляет вашими правилами. Так что ... этот сценарий мы назвали yourRequest, поэтому ваш метод сохранения будет иметь:
public function upload(Requests\yourRequest $request)
также убедитесь, что ваш контроллер использует класс запросов в нем так:
use App\Http\Requests;
если вы будете следовать этому, у вас будет ошибка, которая выглядит так:
другой вариант-сжать файл (в случае образа) с помощью класса Image.
вы должны использовать проверку на стороне клиента при загрузке файла, и если есть несколько файлов для загрузки, вы должны вставить данные через javascript или один за другим
пример кода:
$(document).on("change", "#imageUploader", function(e) {
if(this.files[0].size > 7244183)
{
alert("The file size is too larage");
document.getElementById('#imageUploader').value = "";
}
});