在码农的世界里,优美的应用体验,来源于程序员对细节的处理以及自我要求的境界,年轻人也是忙忙碌碌的码农中一员,每天、每周,都会留下一些脚印,就是这些创作的内容,有一种执着,就是不知为什么,如果你迷茫,不妨来瞅瞅码农的轨迹。
1 问题 SpringBoot 项目上传文件报错The temporary upload location [/tmp/tomcat.*.80/work/Tomcat/localhost/ROOT] is not valid
上传文件的临时路径找不到
2 原因说明在linux系统中,springboot应用服务再启动(java -jar 命令启动服务)的时候,会在操作系统的/tmp目录下生成一个tomcat*的文件目录,上传的文件先要转换成临时文件保存在这个文件夹下面。
由于临时/tmp目录下的文件,在长时间(10天)没有使用的情况下,就会被系统机制自动删除掉。
3 解决方法 自定义配置临时文件路径在你的项目配置文件中添加自定义配置如下:
这样需要你手动在你服务器根目录下创建这个文件夹,我们可以在项目启动的时候检查一下临时文件夹是否存在,不存在就创建
import org.springframework.beans.factory.annotation.Value;import org.springframework.boot.web.servlet.MultipartConfigFactory;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import javax.servlet.MultipartConfigElement;import java.io.File;@Configurationpublic class MultipartConfig {@Value("${location.tempDir:/tmp/tomcat_upload}")private String tempDir;@BeanMultipartConfigElement multipartConfigElement() {MultipartConfigFactory factory = new MultipartConfigFactory();File tmpDirFile = new File(tempDir);// 判断文件夹是否存在if (!tmpDirFile.exists()) {//创建文件夹tmpDirFile.mkdirs();}factory.setLocation(tempDir);return factory.createMultipartConfig();}}