Spring boot上传文件,临时目录找不到
-
报错信息:
org.springframework.web.multipart.MultipartException: Failed to parse multipart servlet request; nested exception is org.apache.commons.fileupload.FileUploadBase$IOFileUploadException: Processing of multipart/form-data request failed. /tmp/tomcat.90955137957753566.8451/work/Tomcat/localhost/api/upload__7288e50d_19ba0a055f1__8000_00000004.tmp (No such file or directory) -
报错问题分析:
-
磁盘权限问题,程序没有权限在 /tmp 下面创建目录或文件
-
磁盘空间已满
-
临时目录被清理 (本人遇到),因为服务器会定时清理 /tmp 目录下长时间未访问过的文件夹。
-
-
解决方案:
-
问题1,无权限:修改临时目录的路径,该方案会和问题3一起解决。
-
问题2,磁盘空间已满:清理磁盘空间
-
问题3,临时目录被清理:
-
解决方案一:在项目的配置文件中,修改临时目录的路径
yaml格式server: tomcat: basedir: /xxx/xxx/xxx #指定拥有权限的路径properties格式
# 指定拥有权限的路径 server.tomcat.basedir=/xxx/xxx/xxx创建目录并赋予权限
mkdir -p /xxx/xxx/xxx chmod 755 /xxx/xxx/xxx -
解决方案二:临时应急:
如果只是想临时恢复服务,重启 Spring Boot 应用。 重启后,Tomcat 会自动重新创建那个缺失的临时目录,上传功能就会恢复正常
-
-