问题描述
Spring Boot项目中内嵌了Tomcat,在上传文件时需要一个临时目录来存储数据。在程序启动的时候默认就会在 [C:\Users\Administrator\AppData\Local\Temp] 目录创建,而操作系统对于临时目录会不定时进行清理,如果项目对应的临时目录被删除,这时候客户端再上传文件,后台就会报错:“The temporary upload location is not valid”
处理方法
在Spring容器中注册MultipartConfigElement对象,通过MultipartConfigFactory指定路径,路径不存在的话就创建
@Bean
public MultipartConfigElement multipartConfigElement() {
MultipartConfigFactory factory = new MultipartConfigFactory();
String location = System.getProperty("user.dir")+"/data/tmp";
File tmpFile = new File(location);
if (!tmpFile.exists()){
tmpFile.mkdirs();
}
factory.setLocation(location);
return factory.createMultipartConfig();
}