1、抛出问题:
Spring Boot上传文件报:
UT005023: Exception handling request to /management/certificateAuthority/uploadSignature
org.springframework.web.multipart.MultipartException: Failed to parse multipart servlet request; nested exception is java.lang.RuntimeException: java.nio.file.NoSuchFileException: /tmp/undertow.6652300641454347928.8120/undertow5829404435798843952upload
2、以前可以正常上传,现在突然不行了,为什么呢?
原因是:在 Linux 系统中,Spring Boot 应用以 java -jar 命令启动时,会在操作系统的 /tmp 目录下生成一个 undertow.xxxx文件夹,如下截图:
在一段时间没有使用后,/tmp目录下的文件夹被清理掉了,在上文件时就会报找不到文件的错误。
3、解决方案:
3.1临时解决方案:
生产上紧急处理,重启服务,自动创建对应的文件夹。
3.2 长久解决方案:
yml文件配置:
spring:
servlet:
multipart:
location: /upload/file # 文件上传的临时目录,此目录需要再linux系统中存在
linux服务器: # 若不存在需要创建
创建该目录 mkdir -p /upload/file
参考链接:
java.nio.file.NoSuchFileException: /tmp/undertowXXXXXX报错问题记录解决方案_程序员小哥哥....的博客-CSDN博客