在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);
}
但是,检查文件大小为时已晚,因为该文件已在我的服务器中创建。