Failed to parse multipart servlet request; nested exception is java.io.IOException

springboot线上的项目出现此状况
Failed to parse multipart servlet request; nested exception is java.io.IOException: The temporary upload location [/tmp/tomcat.6132688910850781933.8089/work/Tomcat/localhost/ROOT] is not valid

原因

  1. 使用http post请求时,需要使用临时目录存放数据
  2. 当前的临时文件路径是被临时创建的,但由于centos的系统机制,temp目录会定时回收和删除的,因此运行了些时日后的项目,就会遇见此状况,没找到对应的目录

解决

1. 重启项目

对于一些demo示例性的,学习性,实验测试性的项目,可以直接重新启动项目则可以解决。
同样,也可以针对报错提示的路径,进行建立相关的路径。

但是,对于已在线上的生产环境的项目,上述方法都不太建议。

2. 修改springboot的配置

在application配置文件中的server-tomcat增加一项配置basedir: /data/temp
使得临时文件存放在指定的目录下,不会被系统回收删除。

修改完成后,重新部署项目。

server:
  tomcat:    
    basedir: /data/temp

Guoye
318 声望9 粉丝