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

Spring Boot上传大Excel报EOF异常 求application.properties正确服务配置

异常触发原因
  • 核心原因是服务端连接超时,你当前配置的server.tomcat.connection-timeout=5000仅允许连接最多保持5秒,15~50MB的文件在带宽不足的场景下无法在5秒内完成上传,Tomcat主动断开连接后,服务端读取未完成的上传流就会抛出EOF异常,你的初始推测方向正确。
  • 你尝试使用的server.tomcat.disable-upload-timeout、server.connectionUploadTimeout不是Spring Boot 2.5.x版本支持的标准配置项,因此IDE会标注为非法。
  • 你现有的spring.servlet.multipart.max-file-size和spring.servlet.multipart.max-request-size配置已经覆盖了50MB的文件大小需求,无需调整。
修复方案
  1. 延长通用连接超时时间,将application.properties中的server.tomcat.connection-timeout调整为更大的值,例如设置为60000(即60秒),可根据实际上传带宽进一步上调。
  2. 新增临时文件落盘阈值配置,避免大文件全部占用内存导致处理过慢:
spring.servlet.multipart.file-size-threshold=10MB
  1. 如需单独为上传请求设置独立超时,可通过自定义Tomcat容器配置类加载Tomcat原生的上传超时属性:
import org.apache.catalina.connector.Connector;
import org.springframework.boot.web.embedded.tomcat.TomcatConnectorCustomizer;
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> containerCustomizer() {
        return factory -> factory.addConnectorCustomizers((TomcatConnectorCustomizer) connector -> {
            // 上传场景超时时间,单位毫秒,此处设置为120秒
            connector.setProperty("connectionUploadTimeout", "120000");
            // 开启上传超时独立配置
            connector.setProperty("disableUploadTimeout", "false");
        });
    }
}
  1. 大文件Excel处理优化:你当前使用XSSFWorkbook会将整个Excel文件读入内存,50MB的Excel对应内存占用可达数百MB,容易拖慢处理速度甚至触发OOM,建议替换为流式处理的SXSSFWorkbook降低内存占用:
// 将原Service层中Workbook初始化代码替换为以下内容
Workbook workbook = new SXSSFWorkbook(file.getInputStream(), 1000); // 内存仅保留1000行,其余写入临时磁盘

内容的提问来源于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 01:09:03