The temporary upload location *** is not valid?
问题描述
之前好好的,一段时间之后,在调用文件上传的接口 的时候出现以下错误
出错描述:在调用文件上传的接口的时候报错 The temporary upload location *** is not valid
出错原因:文件目录不存在
问题处理
这个问题主要的原因是这个文件上传的临时目录不存在了(可以查看下这个目录 /temp/tomcat_xxxx.端口号/work/Tomcat/localhost/ROOT这个目录是否存在)
-
那么为什么会涉及到这个目录呢?
- 文件上传默认的临时文件目录地址是 /temp/tomcat_xxxx.端口号/work/Tomcat/localhost/ROOT,而服务器会对这个目录进行清理(一般是10天),所以在这个被清除后,就会报该错误。(也可以根据报错的代码位置区查看一下具体报错代码)
-
如何解决?
- 配置文件上传临时文件目录地址
这里提供一个写配置类进行配置的方法:
@Configuration
public class MultipartConfig {
/**
* 文件上传临时路径
*/
@Bean
MultipartConfigElement multipartConfigElement() {
MultipartConfigFactory factory = new MultipartConfigFactory();
String location = System.getProperty("user.home") + "/my/temp";
File tmpFile = new File(location);
if (!tmpFile.exists()) {
if (!tmpFile.mkdirs()) {
System.out.println("create was not successful.");
}
}
factory.setLocation(location);
return factory.createMultipartConfig();
}
}
其他进行文件上传属性的配置,可以查看该博客 SpringBoot关于文件上传配置的几种方式