gpt4 book ai didi

java - 两个 Controller 在 Spring Boot 中具有不同的最大文件大小

转载 作者:行者123 更新时间:2023-12-04 14:25:37 24 4
gpt4 key购买 nike

在 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com