使用以下方法配置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响应。
如果有人能指出我正确的方向,那将是值得赞赏的。
答案 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 ...
}
}
}