SpringBoot 当文件上载大小限制超过获取 MultipartException 而不是 MaxUploadSizeExceedException 时
我有简单的SpringBoot应用程序文件上传功能,其中最大文件上传文件大小为2 MB。
我已经配置了它工作正常。但是,当我尝试上传大于2 MB的文件时,我想处理该错误并显示错误消息。multipart.max-file-size=2MB
为此,我有我的控制器实现,实现如下:HandlerExceptionResolver
resolveException()
public ModelAndView resolveException(HttpServletRequest request,
HttpServletResponse response, Object handler, Exception exception)
{
Map<String, Object> model = new HashMap<String, Object>();
if (exception instanceof MaxUploadSizeExceededException)
{
model.put("msg", exception.getMessage());
} else
{
model.put("msg", "Unexpected error: " + exception.getMessage());
}
return new ModelAndView("homepage", model);
}
问题是异常 Im 获取的是 MultipartException 而不是 MaxUploadSizeExceedException。
堆栈跟踪是:无法解析多部分 servlet 请求;嵌套异常是 java.lang.IllegalStateException: org.apache.tomcat.util.http.fileupload.FileUpload.FileUploadBase$FileSizeLimitExceedException:字段 myFile 超过其允许的最大大小2097152 字节。
在文件大小超过的情况下,为什么我没有得到MaxUploadSizeExceedException?我得到它的父异常多部分异常,除了文件大小超过之外,还可以由于许多其他原因而发生。
对此有什么想法吗?