文件上传失败: java.io.IOException: The temporary upload location [...] is not valid

 

异常信息

Could not parse multipart servlet request; nested exception is java.io.IOException: The temporary upload location [/tmp/tomcat.7215026991249819883.8087/work/Tomcat/localhost/ROOT] is not valid
org.springframework.web.multipart.MultipartException: Could not parse multipart servlet request; nested exception is java.io.IOException: The temporary upload location [/tmp/tomcat.7215026991249819883.8087/work/Tomcat/localhost/ROOT] is not valid

 异常原因

临时目录不存在,可能原因系统运行久了,临时文件目录被系统自动清除了

解决方案

1、临时解决方案(快速解决,不推荐)

重启服务,重启后被删除的tomcat目录会重新生成

2、添加启动配置项

启动时增加参数-Djava.io.tmpdir=自定义目录

3、添加文件配置类

@Bean
MultipartConfigElement multipartConfigElement() {
    MultipartConfigFactory factory = new MultipartConfigFactory();
    //临时文件地址
    factory.setLocation("/var/tmp");
    return factory.createMultipartConfig();
}

4、修改tmpwatch 删除文件的逻辑(需要修改系统,不推荐)

tmpwatch 删除文件的逻辑

5、修改application.yml配置文件(推荐)

设置文件临时存储路径

spring.http.multipart.location = /var/tmp

6、设定Tomcat的base 目录,如果没有指定则使用临时目录

server.tomcat.basedir=e:/tmp

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值