具體錯誤爲:The temporary upload location [/tmp/tomcat.4863972233331938549.8890/work/Tomcat/localhost/ROOT] i...。java
出現的場景:linux
項目開發完之後, 就上線投入使用了. 運行了一個多月. 一次用到上傳 excel 功能的時候, 忽然就不能用了, 打開控制檯, 發現後端接口在報500 的錯誤. 因而就去查看服務端日誌. 發現了這個異常.後端
緣由:centos
使用 java -jar 方式啓動 SpringBoot 應用時, 會在 /tmp 目錄下生成 tomcat.[隨機字符].[port] 的臨時文件,
上傳到Linux 的文件會先在此目錄下生成臨時文件, 而linux系統有一個機制, 會在臨時目錄長時間沒有訪問的狀況下( centos 7 /tmp 默認10天, var/tmp 默認30 天), 自動清理目錄下的文件.
能夠經過 vi /usr/lib/tmpfiles.d/tmp.conf 命令查看, 以下圖:tomcat
![](http://static.javashuo.com/static/loading.gif)
出現以上問題的本質, 就是由於對應的臨時文件被刪掉致使的.spa
解決方法:日誌
- 能夠重啓應用, 這時候,會從新生成一個新的臨時文件, 不過過段時間, 問題還會發生, 不推薦使用.
- 在boot 項目中, 修改tomcat的臨時路徑 (強烈推薦):
server.tomcat.basedir=/home/temp
今後媽媽不再用擔憂文件上傳失敗了 -- victoryexcel