【发布时间】:2021-03-23 23:47:24
【问题描述】:
当我尝试上传文件时,我收到FileSizeLimitExceededException 异常,我无法在我的控制器类中处理它。
我的异常处理程序如下所示:
@ExceptionHandler(Exception.class)
public ModelAndView handleFileSizeLimitExceeded(Exception exc) {
System.out.println("In Exception handler");
Authentication auth = SecurityContextHolder.getContext().getAuthentication();
User user = userService.findUserByEmail(auth.getName());
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("imageUploadMessage", "File too big");
modelAndView.addObject("currentUser", user);
modelAndView.setViewName("profile");
return modelAndView;
}
我在Stackoverflow 上看到了几个关于这个问题的类似问题,但其中许多没有公认的答案,而且那里提出的答案也无法解决我的问题。
例如,我在异常处理程序中尝试了FileSizeLimitExceededException、MultipartException 和MaxUploadSizeExceededException,但控制器根本没有被触发。
按照here 提出的解决方案,我在propertis 文件中尝试了以下设置:
spring.servlet.multipart.max-file-size=10MB
spring.servlet.multipart.max-request-size=10MB
server.tomcat.max-swallow-size=100MB
spring.servlet.multipart.resolve-lazily=true
但也没有成功。
有没有办法解决这个问题?
同时,我想返回一个ModelAndView 作为返回语句。
我希望到目前为止有人已经找到了解决这个问题的真正方法:)。
【问题讨论】:
-
你测试的文件大小是多少?如果它 > 100MB,我怀疑 Tomcat 会断开连接,您将看不到 ModelAndView 的响应。
-
另外,如果您提供日志和实际响应会很好
-
@AndreiKovrov 我尝试上传的文件是 16 MB 大小的图片。我用异常的屏幕截图更新了我的问题。
标签: java spring spring-boot tomcat exception