异常信息
Could not parse multipart servlet request; nested exception is java.io.IOException: The temporary upload location [/tmp/tomcat.7215026991249819883.8087/work/Tomcat/localhost/ROOT] is not valid
org.springframework.web.multipart.MultipartException: Could not parse multipart servlet request; nested exception is java.io.IOException: The temporary upload location [/tmp/tomcat.7215026991249819883.8087/work/Tomcat/localhost/ROOT] is not valid
异常原因
临时目录不存在,可能原因系统运行久了,临时文件目录被系统自动清除了
解决方案
1、临时解决方案(快速解决,不推荐)
重启服务,重启后被删除的tomcat目录会重新生成
2、添加启动配置项
启动时增加参数-Djava.io.tmpdir=自定义目录
3、添加文件配置类
@Bean
MultipartConfigElement multipartConfigElement() {
MultipartConfigFactory factory = new MultipartConfigFactory();
//临时文件地址
factory.setLocation("/var/tmp");
return factory.createMultipartConfig();
}
4、修改tmpwatch 删除文件的逻辑(需要修改系统,不推荐)
tmpwatch 删除文件的逻辑
5、修改application.yml配置文件(推荐)
设置文件临时存储路径
spring.http.multipart.location = /var/tmp
6、设定Tomcat的base 目录,如果没有指定则使用临时目录
server.tomcat.basedir=e:/tmp