1. 程式人生 > >The temporary upload location [/tmp/tomcat.1337767218595042057.80/work/Tomcat/localhost/ROOT] is not

The temporary upload location [/tmp/tomcat.1337767218595042057.80/work/Tomcat/localhost/ROOT] is not

線上的系統中不能上傳檔案了,出現如下錯誤:

org.springframework.web.multipart.MultipartException: Could not parse multipart servlet request;nested exception is java.io.IOException: The temporary upload location [/tmp/tomcat.1337767218595042057.80/work/Tomcat/localhost/ROOT] is not valid org.springframework.web.multipart.support.StandardMultipartHttpServletRequest.parseRequest(StandardMultipartHttpServletRequest.java:112
) org.springframework.web.multipart.support.StandardMultipartHttpServletRequest.

原因:
linux系統中,springboot應用服務再啟動(java -jar 命令啟動服務)的時候,會在作業系統的/tmp目錄下生成一個tomcat*的檔案目錄,上傳的檔案先要轉換成臨時檔案儲存在這個資料夾下面。由於臨時/tmp目錄下的檔案,在長時間(10天)沒有使用的情況下,就會被系統機制自動刪除掉。所以如果系統長時間無人問津的話,就可能導致上面這個問題。

解決辦法:
yml配置檔案 中新增:

server.tomcat.basedir
: /data/apps/temp

手動的將臨時資料夾設定為自定義的資料夾,就不會被Linux刪除了。

ps:在windows系統中可以生效,系統會自動生成/data/apps/temp這一路徑,但是在Linux系統中不會生成/data/apps/temp路徑。tell me why?…