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

Spring 6中如何创建MultipartResolver Bean并设置maxUploadSize?

Spring 6 中设置文件上传大小的方法

在Spring 6里,CommonsMultipartResolver被移除后,StandardServletMultipartResolver成为默认的文件上传处理器。这个Resolver依赖Servlet 3.0+的标准API,所以文件上传的大小限制不能通过Resolver的Bean属性设置,要在Servlet容器层面配置,具体分两种场景:

1. Spring Boot 项目

直接在配置文件里添加参数即可,支持.properties和.yml两种格式:

application.properties

# 单文件最大上传大小(对应你原来的1073741824字节,即1GB)
spring.servlet.multipart.max-file-size=1GB
# 整个请求的最大大小(包含所有文件和表单数据)
spring.servlet.multipart.max-request-size=1GB
# 可选:文件大小超过阈值时,会写入临时文件
spring.servlet.multipart.file-size-threshold=0

application.yml

spring:
  servlet:
    multipart:
      max-file-size: 1GB
      max-request-size: 1GB
      file-size-threshold: 0

2. 传统Spring MVC项目

如果是基于web.xml或者Java代码配置Servlet容器,需要直接配置Servlet的multipart-config:

基于web.xml配置

在DispatcherServlet的配置里添加<multipart-config>标签:

<servlet>
    <servlet-name>dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/spring-mvc.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
    <!-- 配置文件上传限制 -->
    <multipart-config>
        <!-- 单文件最大大小,单位字节 -->
        <max-file-size>1073741824</max-file-size>
        <!-- 整个请求最大大小,单位字节 -->
        <max-request-size>1073741824</max-request-size>
        <!-- 可选:写入临时文件的阈值 -->
        <file-size-threshold>0</file-size-threshold>
    </multipart-config>
</servlet>

基于Java代码配置

通过MultipartConfigElement配置参数,再注册到DispatcherServlet:

@Configuration
public class WebConfig implements WebMvcConfigurer {

    @Bean
    public ServletRegistrationBean<DispatcherServlet> dispatcherServletRegistration() {
        ServletRegistrationBean<DispatcherServlet> registration = new ServletRegistrationBean<>(new DispatcherServlet(), "/");
        // 配置文件上传参数
        MultipartConfigElement multipartConfig = new MultipartConfigElement(
                null, // 临时文件存储路径,默认用容器临时目录
                1073741824L, // 单文件最大大小
                1073741824L, // 整个请求最大大小
                0 // 文件阈值
        );
        registration.setMultipartConfig(multipartConfig);
        return registration;
    }
}

另外需要注意:Spring Boot会自动注册StandardServletMultipartResolver的Bean,传统项目需要手动声明:

@Bean
public MultipartResolver multipartResolver() {
    return new StandardServletMultipartResolver();
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 13:25:15