You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法修改配置时如何处理超出大小限制的Multipart文件上传问题

可行解决方案

方案1:注册Multipart配置Bean

通过Spring配置类注入MultipartConfigElement类型Bean,该配置优先级高于application.yml中的配置,无需修改配置文件即可生效,代码示例如下:

import org.springframework.boot.web.servlet.MultipartConfigFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.util.unit.DataSize;
import javax.servlet.MultipartConfigElement;

@Configuration
public class MultipartUploadConfig {

    @Bean
    public MultipartConfigElement multipartConfigElement() {
        MultipartConfigFactory configFactory = new MultipartConfigFactory();
        // 单个上传文件最大大小,-1表示无限制
        configFactory.setMaxFileSize(DataSize.ofBytes(-1));
        // 单次上传请求总大小,-1表示无限制
        configFactory.setMaxRequestSize(DataSize.ofBytes(-1));
        return configFactory.createMultipartConfig();
    }
}

方案2:自定义内嵌Tomcat容器配置(仅适用于使用Tomcat作为内置容器的场景)

如果方案1未生效,可以通过定制Tomcat连接器的请求大小限制兜底:

import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.boot.web.server.WebServerFactoryCustomizer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class TomcatServerConfig {

    @Bean
    public WebServerFactoryCustomizer<TomcatServletWebServerFactory> tomcatRequestSizeCustomizer() {
        return factory -> factory.addConnectorCustomizers(connector -> {
            // 设置Tomcat允许的最大POST请求大小,-1表示无限制
            connector.setMaxPostSize(-1);
        });
    }
}

配置生效说明

  • 优先选择方案1,兼容所有Servlet规范的容器,无需依赖具体服务器实现
  • 如需设置固定大小限制,可将-1替换为对应大小,例如DataSize.ofMegabytes(100)即代表最大限制为100MB
  • 确保配置类在Spring的组件扫描路径下,可放在启动类同级目录或子目录下

内容的提问来源于stack exchange,提问作者Juan Sanjaya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 23:15:09