在 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,
如何创建两个具有不同最大文件大小的 Controller ?
编辑:
附加信息:application.properties
中的以下属性用于设置默认最大文件大小:
spring.http.multipart.max-file-size=30MB
另请参阅:SpringBoot's @MultipartConfig maxFileSize not taking effect
最佳答案
您需要在 application.properties 文件中设置默认配置
spring.http.multipart.max-file-size=30MB
spring.http.multipart.max-request-size=30MB
并且在您的 Controller 中,您需要根据文件大小抛出 MaxUploadSizeExceededException
异常:
long limit = 1024 * 1024 * 10;
if (file.getSize() > limit) {
throw new MaxUploadSizeExceededException(limit);
}
关于java - 两个 Controller 在 Spring Boot 中具有不同的最大文件大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45639042/