Php 最大文件大小的Laravel验证规则不起作用
在我的laravel项目中,我的验证器的这个片段是Php 最大文件大小的Laravel验证规则不起作用,php,laravel,file,validation,Php,Laravel,File,Validation,在我的laravel项目中,我的验证器的这个片段是 $this->validate($request, ['name'=>'required|unique:activities,name,'.$request->id, 'images.*'=>'image|max:65536', 'description'=>'required' ] ); 我希望一次最多上传64 MB的图像。我还将php.ini文件中的max_upload
$this->validate($request,
['name'=>'required|unique:activities,name,'.$request->id,
'images.*'=>'image|max:65536',
'description'=>'required'
]
);
我希望一次最多上传64 MB的图像。我还将php.ini文件中的max_upload_size和max_post_size设置为64 MB,并将max_file_uploads编辑为安全的高值。
当我试图上传64MB以上的文件时,它不是应该返回一条错误消息并将我重定向到上一条消息吗??
但是我收到了一条消息,PostTooLargeException
public function handle($request, Closure $next)
{
$max = $this->getPostMaxSize();
if ($max > 0 && $request->server('CONTENT_LENGTH') > $max) {
throw new PostTooLargeException;
}
return $next($request);
}
为什么会发生这种情况??大多数答案指导我编辑php.ini文件,我已经编辑了。如何阻止这种情况发生,并安全地将用户重定向到上一页,并显示验证错误消息???您获得此类输出的原因是,错误发生在控件到达您的操作之前,因此您无法在控制器中对此执行任何操作 但是,如果您确实想捕获此异常,可以在
Handler.php的render()
方法中添加自定义异常处理代码,该方法位于app/Exceptions
文件夹中
我自己也写过这样的代码,例如:
if ($exception instanceof \Illuminate\Session\TokenMismatchException) {
您必须指定PostTooLargeException
类的完整限定路径,而不是\illighted\Session\TokenMismatchException
$exception
是前面指定的render()
方法的参数。请显示错误?重新启动服务器了吗?