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

Spring Boot上传大Excel报multipart/form-data请求失败问题咨询

异常触发原因

你遇到的EOFException是Tomcat读取上传请求数据流时,未读完完整请求就触发了连接断开导致的。你已经正确配置了spring.servlet.multipart相关的文件大小上限,所以不是文件大小超出限制的问题,核心原因就是当前server.tomcat.connection-timeout=5000(5秒)的配置,不足以支撑大文件的完整传输时长,文件还没传完Tomcat就主动断开了空闲连接。
你尝试配置的server.tomcat.disable-upload-timeout和server.connectionUploadTimeout确实为无效配置,这两个不属于Spring Boot 2.5.x版本支持的内置配置项,因此IDE会标红提示。

可行解决方法

  • 最简单的调整是直接调大连接超时时长:根据你的实际网络传输速度,把server.tomcat.connection-timeout调整为足够覆盖最大文件上传耗时的数值,比如预计50MB文件最长需要30秒传输,就改为30000即可。
  • 如果需要完全禁用上传场景的超时限制,可以通过自定义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 TomcatConfig {
    @Bean
    public WebServerFactoryCustomizer<TomcatServletWebServerFactory> tomcatCustomizer() {
        return factory -> factory.addConnectorCustomizers(connector -> {
            // 关闭上传超时限制
            connector.setDisableUploadTimeout(true);
        });
    }
}
  • 额外优化:如果经常需要传输几十MB的大文件,可以在配置文件中增加如下配置,将超出阈值的上传文件先写入临时磁盘,降低内存占用过高的风险:
spring.servlet.multipart.file-size-threshold=10MB

你现有的排查方向完全正确,调整后即可解决大文件上传报错的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 00:27:03