1.使用springboot-2.3.7搭建了一项目,上传文件,后发现大文件上传总是失败。看控制台日志,开始是提示文件过大,配置一下,在properrity文件中配置了如下两行:
spring.servlet.multipart.max-file-size=1MB spring.servlet.multipart.max-request-size=150MB
这个问题解决,然后。。。操作。。。部署上集成环境,集成环境测试时测试说不能上传PDF文件,本地环境和集成环境不在一个网段。
2.本地测,完全没问题。怀疑是环境差异,是不是配置文件未生效之类的,没办法上集成环境看日志报错 java.io.EOFException: Unexpected EOF read on the socket,我先用小文件测了没问题,然后用大文件测试,就报上面这个错误。上网搜了一下这个异常,是这么说的:
Signals that an end of file or end of stream has been reached unexpectedly during input.
在输入过程中意外地到达文件结尾或流结束的信号
猜测是文件大了,上传的请求时间不够,找到客户端(前端),请求时间是3秒,一看和发起请求到看到报错日志的时间差不多,修改为15秒。顺利上传,结束。
这是由于集成环境的网络带宽与本地环境带宽差距较大,所以本地环境没有复现出来。增加难度,没有头绪让我怀疑配置文件没有加载到,jar包不一致等乱七八糟的因素。重启集成环境的服务好几次。后来静下心仔细看报错日志才发现问题解决问题。