$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编辑为安全的高值。
当我尝试上传超过64 MB的文件时,它不应该返回错误消息并将我重定向到上一条消息吗?
但是我收到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文件。如何阻止这种情况的发生,并通过验证错误消息将用户安全地重定向到上一页?
答案 0 :(得分:3)
之所以得到这样的输出,是因为在控制权付诸行动之前就已经发生了错误,因此您无法在Controller中对其进行任何操作。
但是,如果您真的想捕获此异常,则可以在render()
文件夹中的Handler.php
的{{1}}方法中添加自定义异常处理代码。
我自己编写了这样的代码,例如:
app/Exceptions
您必须指定if ($exception instanceof \Illuminate\Session\TokenMismatchException) {
类的完整限定路径,而不是\Illuminate\Session\TokenMismatchException
。 PostTooLargeException
是先前指定的$exception
方法的参数。