两个控制器在Spring Boot中具有不同的最大文件大小(2MB和无限)

时间:2017-08-12 18:27:42

标签: java spring servlets spring-boot

在Servlet 3.0规范中,两个servlet具有不同的最大文件大小(例如,2MB和无限),可以创建并正常工作。

@WebServlet(urlPatterns = { "/ureupload1" })
// 2MB
@MultipartConfig(maxFileSize = 1024 * 1024 * 2)
public class UploadServlet1 extends HttpServlet {

@WebServlet(urlPatterns = { "/ureupload2" })
// infinite (or very large size)
@MultipartConfig
public class UploadServlet2 extends HttpServlet {

如果使用Spring Boot Controller,@MultipartConfig似乎无效。

@Controller
// 2MB
@MultipartConfig(maxFileSize = 1024 * 1024 * 2)
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=-1

但是,我还想避免在我的服务器中创建文件之前将大文件上传到UploadController1

另请参阅:Two controllers have different max file size in Spring Boot(这是我之前的问题)

编辑(附加信息):

我之前提问的解决方案是:

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

但是,检查文件大小为时已晚,因为该文件已在我的服务器中创建。

0 个答案:

没有答案