配置SpringIO MultiPartFile太大错误

时间:2014-10-15 11:38:05

标签: spring spring-mvc

使用以下方法配置Spring.IO REST服务,防止文件上传大于1MB:

@Configuration
@ComponentScan
@EnableAutoConfiguration
public class UploadConfig {

    @Bean
    MultipartConfigElement multipartConfigElement() {
        MultipartConfigFactory factory = new MultipartConfigFactory();
        factory.setMaxFileSize("1024KB");
        factory.setMaxRequestSize("1024KB");
        return factory.createMultipartConfig();
    }
}

这适用于此阈值范围内的所有上传。如果文件太大但我无法确定如何,我想自定义响应。目前返回标准401响应。

如果有人能指出我正确的方向,那将是值得赞赏的。

1 个答案:

答案 0 :(得分:1)

您只需在Spring MVC中配置MultipartException的处理程序。如果您只在一个或几个控制器中上传文件,您只需在这些控制器中添加ExceptionHandler注释方法:

@ExceptionHandler(MultipartException) {
public ModelAndView multipartException(MultipartException exception, ...) {
    // do you stuff
    // and return a ModelAndView ...
}

如果您必须在多个控制器中添加它,您还可以在servlet应用程序上下文中注册一个自定义MultipartExceptionResolver,该上下文将针对Spring DispatcherServlet中的任何异常触发。

public class MultipartExceptionResolver  implements HandlerExceptionResolver {

    @Override
    public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {
        if (ex instanceof MultipartException) {
            // do you stuff
            // and return a ModelAndView ...
        }
    }
}