这里会显示出您选择的修订版和当前版本之间的差别。
后一修订版 | 前一修订版 | ||
bugs:javaee:2019011601 [2019/03/15 10:01] jinlong 创建 |
bugs:javaee:2019011601 [2020/07/12 12:07] (当前版本) |
||
---|---|---|---|
行 1: | 行 1: | ||
- | # CentOS自动清理临时文件夹导致的文件无法上传 | + | ====== CentOS自动清理临时文件夹导致的文件无法上传 ====== |
- | ## 错误现象 | + | ===== 错误现象 ===== |
使用springboot接收上线文件,系统报错如下: | 使用springboot接收上线文件,系统报错如下: | ||
- | ``` | + | <code> |
org.springframework.web.multipart.MultipartException: | org.springframework.web.multipart.MultipartException: | ||
Could not parse multipart servlet request; | Could not parse multipart servlet request; | ||
nested exception is java.io.IOException: | nested exception is java.io.IOException: | ||
The temporary upload location [/tmp/tomcat.277464978154576567.8516/work/Tomcat/localhost/ROOT] is not valid | The temporary upload location [/tmp/tomcat.277464978154576567.8516/work/Tomcat/localhost/ROOT] is not valid | ||
- | ``` | + | </code> |
- | ## 原因 | + | ===== 原因 ===== |
- | 1. springboot启动后,会分配一个tmp目录给springboot应用,本例中目录地址为:/tmp/tomcat.277464978154576567.8516/ | + | - springboot启动后,会分配一个tmp目录给springboot应用,本例中目录地址为:/tmp/tomcat.277464978154576567.8516/ |
- | 2. 但是操作系统会定期清除tmp文件夹,时间长了以后,这个文件夹被删掉以后,springboot就找不到这个目录了,就会报错 | + | - 但是操作系统会定期清除tmp文件夹,时间长了以后,这个文件夹被删掉以后,springboot就找不到这个目录了,就会报错 |
- | ## 解决方案 | + | ===== 解决方案 ===== |
在application.yml里面手工指定临时文件夹,保证数据不会被删掉 | 在application.yml里面手工指定临时文件夹,保证数据不会被删掉 | ||
- | ~~~ | + | <code> |
spring: | spring: | ||
http: | http: | ||
multipart: | multipart: | ||
location: /data/upload_tmp | location: /data/upload_tmp | ||
- | ~~~ | + | </code> |
若是使用application.properties文件,则使用: | 若是使用application.properties文件,则使用: | ||
- | ``` | + | <code> |
spring.http.multipart.location=/data/upload_tmp | spring.http.multipart.location=/data/upload_tmp | ||
- | ``` | + | </code> |