springboot The temporary upload location is not valid

问题描述

springboot项目,已运行一段时间,某一天突然出现文件上传失败,发现报错如下:

The temporary upload location [/tmp/tomcat.4543961078644709426.8090/work/Tomcat/localhost/ROOT] is not valid

问题解析

该临时文件夹为springboot 内置tomcat保存上传文件的临时路径,该路径默认存在于/tmp下,因此会被linux机制在一段时间后删除,因此报错

解决方案

临时解决

重启即可(治标不治本)

使用自定义临时文件夹

配置文件:
server.tomcat.basedir

命令行:
java -jar boot.jar --server.tomcat.basedir=/userdefine_path

linux删除缓存文件配置

vim /usr/lib/tmpfiles.d/tmp.conf

# 添加一行, x 表示 exclude 
x /tmp/tomcat.*

配置mutipartConfig

@Bean
MultipartConfigElement multipartConfigElement() {
    MultipartConfigFactory factory = new MultipartConfigFactory();
    factory.setLocation("定义配置临时路径");
    return factory.createMultipartConfig();
}
posted @ 2020-08-17 11:37  bendandan  阅读(218)  评论(0编辑  收藏  举报