两个控制器在Spring Boot中具有不同的最大文件大小

在Servlet 3.0规范中,可以创建两个具有不同最大文件大小的servlet并且工作正常。

@WebServlet(urlPatterns = { "/ureupload1" }) // 10MB @MultipartConfig(maxFileSize = 1024 * 1024 * 10) public class UploadServlet1 extends HttpServlet { 

 @WebServlet(urlPatterns = { "/ureupload2" }) // 30MB @MultipartConfig(maxFileSize = 1024 * 1024 * 30) public class UploadServlet2 extends HttpServlet { 

如果使用Spring Boot Controller, @MultipartConfig似乎无效。

 @Controller @MultipartConfig(maxFileSize = 1024 * 1024 * 10) public class UploadController1 { @RequestMapping(value = "/upload1", method = RequestMethod.POST, consumes = "multipart/form-data") public ModelAndView doPost(@RequestParam("file") MultipartFile file, 

如何创建两个具有不同最大文件大小的控制器?

编辑:

附加信息:以下属性位于application.properties中,以便设置默认的最大文件大小:

 spring.http.multipart.max-file-size=30MB 

另请参见: SpringBoot的@MultipartConfig maxFileSize未生效

您需要在application.properties文件中设置默认配置

 spring.http.multipart.max-file-size=30MB spring.http.multipart.max-request-size=30MB 

在您的控制器中,您需要根据文件大小抛出MaxUploadSizeExceededExceptionexception:

 long limit = 1024 * 1024 * 10; if (file.getSize() > limit) { throw new MaxUploadSizeExceededException(limit); }