2023.04.16 | admin | 224次围观
Spring Boot 上传文件出错:java.io.IOException: The temporary upload location
线上项目上传文件功能突然报错,这是一个比较严重的问题,下面带大家看看一个文件上传的神秘bug
Caused by: java.io.IOException: The temporary upload location
[C:\Users\maomao\AppData\Local\Temp\tomcat.15432125454846448.2357\work\Tom
cat\localhost\ROOT] is not valid
异常就像是上面那样,tomcat在启动的时候会生成一个临时的上传文件保存的位置文件上传失败io异常怎么办,但是这个位子默认是放在系统的临时文件夹中。当这个tomcat创建的文件夹被系统删除后文件上传失败io异常怎么办,这时在上传文件就出现问题了。
具体解决方法在:重启服务,tomcat会从新生成新的临时目录,不过这样后面还是会出现之前的情况,所以不建议在生成环境中使用。在application.properties文件中配置server.tomcat.basedir=自定义目录启动时增加参数-Djava.io.tmpdir=自定义目录添加一个配置bean:
@Autowired
private TomcatBean tomcatBean;
@Bean
MultipartConfigElement multipartConfigElement() {
File root = new File(tomcatBean.getBasedir());
if (!root.exists() || root.isFile()) {
Assert.isTrue(root.mkdirs(), "创建临时文件目录失败!");
}
MultipartConfigFactory factory = new MultipartConfigFactory();
factory.setLocation(tomcatBean.getBasedir());
return factory.createMultipartConfig();
}
修改tmpwatch删除文件的逻辑,系统级别的命令,不建议操作
版权声明
本文仅代表作者观点。
本文系作者授权发表,未经许可,不得转载。
发表评论