The temporary upload location [/tmp/tomcat.676427832.80/work/Tomcat/localhost/ROOT] is not valid错误解决

在Linux CentOS系统上,由于默认设置,Spring Boot应用中Tomcat的临时目录会被定期清理,导致图片上传失败。通过在`application.properties`中设置自定义的临时文件路径,或者修改CentOS的系统配置来避免这个问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

今天用到了项目的图片上传,发现之前好好的图片上传,今天突然传不上去了,记录一下解决过程。

问题

图片传不上去后,查看了一下日志报错,报错信息如下:

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

原因

在Linux上,Spring Boot程序在不配置application.properties配置文件中的server.tomcat.basedir属性值的时候,启动时会在/tmp文件夹下创建两个临时文件夹,为tomcat.数字.你的后端端口号tomcat-docbase.数字.你的后端端口号

在文件上传时,上传的文件先要转换成临时文件保存在tomcat.数字.端口号这个文件夹下边,而在Centos中,默认情况下,系统会删除/tmp目录下十天没有使用的文件,删除文件后,就出现了上边的错误,并且文件上传失败。

这也就解释了为什么之前好好的图片上传,几天不用突然报错了。

解决

若想解决此错误,可以直接重启项目,因为项目重启后又会自动生成对应的这两个文件夹,但是指标不治本,十天不用之后还是会报错。

建议采用的解决办法:
在项目的properties配置文件中加入server.tomcat.basedir=路径即可
我的是server.tomcat.basedir=/root/blog/tmp
这样配置了上传文件的临时路径,我们就不会去采用默认的tomcat.xxxx.端口号这个文件夹保存上传图片的临时文件,也不用担心被Centos误删了。

除此之外,还可以更改Centos系统设置,设置不定期清理这些文件,具体方法可以百度。
大致就是在一些系统配置文件中加上如下代码:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值