在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似乎无法正常工作。
@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为了设置默认的最大文件大小:
application.properties
spring.http.multipart.max-file-size=30MB
您需要在application.properties文件中设置默认配置
spring.http.multipart.max-file-size=30MB spring.http.multipart.max-request-size=30MB
并且在您的控制器中,您需要MaxUploadSizeExceededException根据文件大小引发异常:
MaxUploadSizeExceededException
long limit = 1024 * 1024 * 10; if (file.getSize() > limit) { throw new MaxUploadSizeExceededException(limit); }