两个控制器在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
在您的控制器中,您需要根据文件大小抛出MaxUploadSizeExceededException
exception:
long limit = 1024 * 1024 * 10; if (file.getSize() > limit) { throw new MaxUploadSizeExceededException(limit); }