原因:
springboot上传隔天左右上传不可用报错Failed to parse multipart servlet request; nested exception is java.io.IOException,重启后又正常,为啥上传文件失败,从异常信息上看,说缺少目录[
/tmp/tomcat../work/Tomcat/localhost/ROOT]导致的。经过对异常描述中的解读发现
1:这个是一个IO异常
2:同时是因为文件上传引起
3:在其中我们看到了Tomcat单词,说明这和Tomcat有关
4:上传文件时,上传的文件暂存在临时目录。
5:文件上传成功后,再COPY到上传的指定目录。
6:当前临时目录(tmp)隔日天会清理一次(root帐户无该问题)。
结果:
应该有人不知道,在tomcat接收http POST请求的时候,他是需要有一个临时目录来存储这个数据的,因为他是存放在/temp目录下的可能会因为一些原因被清除,所以会报错IO异常。因为该目录是挂在到/temp目录下的临时文件,那么对于一些OS系统,像centOS将经常删除这个临时目录,所有导致该目录不存在了。
解决方案:
1:重启你的项目就可以了
2:在application.yml中配置上传目录的本地的临时存放位置,并重启项目
3. 添加启动参数 -java.tmp.dir=
/path/to/application/temp/,并重启。
4.添加配置:
server.tomcat.basedir=/data/app/upload
程序启动前,加入自动创建文件夹代码,避免实施人员未创建目录导致程序启动失败。