这里会显示出您选择的修订版和当前版本之间的差别。
| 后一修订版 | 前一修订版 | ||
|
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> |