正在阅读:
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日 发表
转载请注明文本地址:https://www.bemhome.com/post/20.html