Python 官方文档:入门教程 => 点击学习
目录上传临时文件被删除引起报错的解决1.前言2.问题分析3.解决方案文件上传提示临时文件夹不存在1.异常信息2.原因3.解决方法上传临时文件被删除引起报错的解决 1.前言 在项目中使
在项目中使用到了SpringBoot的上传实现了一个excel导入功能,上线后稳得一批,但突然有一天发现,导入失败报错:
location [/tmp/Tomcat.xxx.8551/work/Tomcat/localhost/ROOT] is not valid
详见如图
在springBoot项目启动后,系统会在‘/tmp'目录下自动的创建以下几个文件;
程序对上传文件操作时,会生成临时文件,暂存在临时文件目录中,经查阅资料发现Centos有自动清理规则,系统会对/tmp下10天未使用的文件进行清理,清理后再次使用文件上传就会出现以上问题 ;
3.1重启项目
启动时会自动新建临时目录的。但是以后依旧会有被系统自动清除的可能(未彻底解决)。
3.2自定义临时文件路径
新增如下配置
server.tomcat.basedir=/home/dev/temp
注意事项:
3.2新增配置
配置类方式指定临时文件路径
@Configuration
public class MultipartConfig {
@Bean
MultipartConfigElement multipartConfigElement() {
MultipartConfigFactory factory = new MultipartConfigFactory();
String location = System.getProperty("user.dir") + "/dev/temp";
File tmpFile = new File(location);
if (!tmpFile.exists()) {
tmpFile.mkdirs();
}
factory.setLocation(location);
return factory.createMultipartConfig();
}
}
java.io.IOException: The temporary upload location [C:\Users\Administrator\AppData\Local\Temp\tomcat.1668302398522753093.8383\work\Tomcat\loca lhost\ROOT] is not valid
文件上传临时上传文件夹失效了,可能是系统清除了临时目录。
1.重启服务,不建议在生产环境使用。
2.增加服务配置,自定义baseDir。
server.tomcat.basedir=/tmp/tomcat
3.注入bean,手动配置临时目录,建议有项目组统一配置,便于管理和错误定位。
@Bean
MultipartConfigElement multipartConfigElement() {
MultipartConfigFactory factory = new MultipartConfigFactory();
factory.setLocation("/tmp/tomcat");
return factory.createMultipartConfig();
}
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。
--结束END--
本文标题: SpringBoot上传临时文件被删除引起报错的解决
本文链接: https://www.lsjlt.com/news/157768.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0