小编典典

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

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

阅读 349

收藏
2020-05-30

共1个答案

小编典典

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

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

并且在您的控制器中,您需要MaxUploadSizeExceededException根据文件大小引发异常:

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