我正在尝试上传包含图片的表单。当我提交它。它显示此错误
PostTooLargeException in ValidatePostSize.php line 22:
如何解决此问题?
答案 0 :(得分:11)
检查php.ini文件中的以下参数。
我曾多次遇到此问题,通常是因为默认情况下max_file_size设置为2M。
**编辑 我被问到如何在将文件发送到PHP之前使用Laravel中的validate方法验证文件大小,并向用户警告大文件。你可以这样做:
<强> 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。在预先确定的验证类中确定您将使用的验证器 ** 转到您的项目/ Resources / lang / en / validators.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 / Requests / yourRequest.php并在规则方法'file_name'=&gt;中添加以下内容: 'max:10'更新10到你的限制值,以千字节为单位:
public function rules()
{
return [ 'profile_pic' => 'required|image|mimes:jpg|max:10',
];
}
<强> 6。使用请求文件管理规则时发出请求。 因此,在这种情况下,我们将其命名为yourRequest,因此您的保存方法将具有:
public function upload(Requests\yourRequest $request)
还要确保您的Controller使用其中的请求类,如下所示:
use App\Http\Requests;
另一个选项是使用Image类缩小文件(如果是图像)。
答案 1 :(得分:2)
您应该在上传文件中使用客户端验证,如果有多个文件要上传选项,您应该通过javascript或逐个插入数据
示例代码:
$(document).on("change", "#imageUploader", function(e) {
if(this.files[0].size > 7244183)
{
alert("The file size is too larage");
document.getElementById('#imageUploader').value = "";
}
});