2017-08-11 57 views
2

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

@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启动控制器,@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's @MultipartConfig maxFileSize not taking effect

+0

你创建'StandardServletMultipartResolver'豆 –

+0

或者你也可以创建一个'MultipartResolver'豆 –

+0

不,我没有。 'MultipartResolver'可以解决这个问题吗? –

回答

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); 
} 
+0

谢谢您的好意。我将投票+1并关闭此问题,但我真正想知道的是:https://stackoverflow.com/questions/45653571/two-controllers-have-different-max-file-size-2mb-and-infinite -in弹簧启动 –

相关问题