捕获Spring MVC Maxupload Size Error

Mar*_*ada 5 java spring file-upload spring-mvc

我知道很难仅使用纯JavaScript来检查客户端(浏览器)的文件大小.

现在,我的问题是,服务器端是否有办法捕获这样的异常?

org.springframework.web.multipart.MaxUploadSizeExceededException: Maximum upload size of 2000000 bytes
Run Code Online (Sandbox Code Playgroud)

会发生什么,它没有到达我的@controller post方法,它只是抛出了我的error.jsp正在赶上的异常.

我在想的是,有可能在spring mvc annotated方法中做到这一点吗?

@RequestMapping("/uploadFile.htm")
    public String uploadAttachment(
        HttpServletRequest request,
        @RequestParam(required = false, value = "attached-file") MultipartFile file,
        ModelMap model) throws Exception {

        if(checkfilesize(file)){
            //populate model
            //add error if appplicable
            //return same form again
        }
        //return success
    }       
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,它没有达到这一点,只是抛出了一个很大的例外.

虽然error.jsp能够捕获它,但如果我能提醒用户他们要上传的文件超出限制,我会认为它非常友好.

顺便说一句,这是Spring MVC 2.5应用程序.这可能吗?

ska*_*man 4

此异常被抛出DispatcherServlet.doDispatch(),因此您应该能够使用HandlerExceptionResolver 在您的上下文中配置的来捕获此异常。

  • @MarkEstrada 如果请求的大小包含所有参数,包括。文件参数,超过`maxUploadSize`,请求参数根本不会被解析。因此它与验证不能很好地集成。 (2认同)