正在阅读:
Failed to parse multipart servlet request; nested exception is java.io.IOException: The temporary...

问题:存在文件上传功能的springboot项目,在Linux系统部署之后(使用 java -jar运行),会在系统的tmp目录生成一个带tomcat及随机字符串的临时目录
如:/tmp/tomcat.7555554548062926924.7995/work/Tomcat/localhost/folder
但是该目录有可能会被linux系统在一定时间后自动清除掉,导致再次上传文件的时候,系统就会报错,如:
Failed to parse multipart servlet request; nested exception is java.io.IOException: The temporary upload location [/tmp/tomcat.7555554548062926924.7995/work/Tomcat/localhost/folder] is not valid"
解决:
可以在项目中增加配置项目,创建配置项类,如
import org.springframework.boot.web.servlet.MultipartConfigFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import javax.servlet.MultipartConfigElement;
@Configuration
public class MultipartConfig {
@Bean
MultipartConfigElement multipartConfigElement() {
MultipartConfigFactory factory = new MultipartConfigFactory();
factory.setLocation("/data/tmp");
return factory.createMultipartConfig();
}
}部署系统之后,在linux的根目录创建data文件夹,并在该文件夹下创建tmp,创建完成之后
以后每次文件上传,则会暂存以上目录,而不会存放在自动生成的临时目录。
该日志由 bemender 于 2020年09月28日 发表
转载请注明文本地址:http://www.bemhome.com/post/20.html