Spring boot 上传文件,突然出现异常:
java.io.IOException: The temporary upload location [C:\Users\essence-pc\AppData\Local\Temp\tomcat.6349132253152360078.8035\work\Tomcat\localhost\qzl2nd] is not valid
错误原因:
临时文件夹无效 ,文件上传临时上传文件夹失效了,可能是系统清除了临时目录。
在springboot项目启动后,系统会在‘/tmp’目录下自动的创建几个目录:
1,tomcat.************.8080,(结尾是项目的端后)
2,tomcat-docbase.*********.8080。
解决方案有三种
1:重启服务,不建议在生产环境使用。
2:修改tocat启动配置,自定义baseDir。添加-Djava.io.tmpdir=
java -Djava.io.tmpdir=./temp -jar fdbserver-0.0.1-SNAPSHOT.jar -Dspring.config.location=file:./application.properties
3:注入bean,手动配置临时目录,建议有项目组统一配置,便于管理和错误定位。
/**
* 文件上传临时路径
*/
@Bean
MultipartConfigElement multipartConfigElement() {
MultipartConfigFactory factory = new MultipartConfigFactory();
factory.setLocation("c:/tmp");
return factory.createMultipartConfig();
}
经过配置后,再次上传文件,就可以直接上传了。