上传文件报错:The temporary upload location [/tmp/tomcat/xxx] is not valid

1.上传附加时报错找不到临时目录

Failed to parse multipart servlet request; nested exception is java.io.IOException: The temporary upload location [/tmp/tomcat/work/Tomcat/localhost/ROOT] is not valid

发生改报错原因为

text 复制代码
(1)、SpringBoot项目启动后,系统默认会在 /tmp 目录下自动创建如下三个目录

 hsperfdata_root,
 tomcat.************.8080,(结尾是项目的端后)
 tomcat-docbase.*********.8080
(2)、Multipart(form-data)的方式处理请求时,默认就是在第二个目录下创建临时文件的

(3)、CentOS7 定时清理临时文件目录

/tmp目录的清理规则主要取决于/usr/lib/tmpfiles.d/tmp.conf文件的设定

java 复制代码
#Clear tmp directories separately, to make them easier to override
v /tmp 1777 root root 10d           #   清理/tmp下10天前的目录和文件
v /var/tmp 1777 root root 30d       #   清理/var/tmp下30天前的目录和文件

2.两种解决方案

2.1 启动脚本指定:

shell 复制代码
DIR=/home/application
JAVATEMPDIR=${DIR}/temp

nohup java -jar application-1.0.0-1.jar -Xms10m -Xmx100m  --server.port=9820 -java.tmp.dir=$JAVATEMPDIR 2>1&

2.2 在SpringBoot的配置之中设定路径

复制代码
spring.mvc.static-path-pattern=/upload/**
spring.http.multipart.max-file-size=10MB
#指定上传文件临时目录
spring.http.multipart.location=/opt/data/upload
相关推荐
qq_12498707539 分钟前
重庆三峡学院图书资料管理系统设计与实现(源码+论文+部署+安装)
java·spring boot·后端·mysql·spring·毕业设计
大学生资源网13 分钟前
java毕业设计之“知语”花卉销售网站的设计与实现源码(源代码+文档)
java·mysql·毕业设计·源码·springboot
小鸡脚来咯18 分钟前
Redis三大问题:穿透、击穿、雪崩(实战解析)
java·spring·mybatis
桦说编程21 分钟前
并发编程高级技巧:运行时检测死锁,告别死锁焦虑
java·后端·性能优化
jiayong2328 分钟前
Spring AI Alibaba 深度解析(三):实战示例与最佳实践
java·人工智能·spring
梁同学与Android35 分钟前
Android ---【经验篇】ArrayList vs CopyOnWriteArrayList 核心区别,怎么选择?
android·java·开发语言
ss2731 小时前
从零实现线程池:自定义线程池的工作线程设计与实现
java·开发语言·jvm
苗壮.1 小时前
CommandLineRunner 是什么?
java
石工记1 小时前
windows 10直接安装多个JDK
java·开发语言
菜鸟233号1 小时前
力扣669 修剪二叉搜索树 java实现
java·数据结构·算法·leetcode