本文目錄
3.2 方案二:修改配置文件(application.properties或者.yml配置文件)
一、背景描述
CMS後臺管理系統(springboot項目)在本地測試上傳視頻文件時,控制檯報錯信息如下:
org.springframework.web.multipart.MultipartException: Failed to parse multipart servlet request; nested exception is java.io.IOException: The temporary upload location [/tmp/tomcat.1428942566812653608.8090/work/Tomcat/localhost/ROOT] is not valid
二、異常分析
從上述報錯信息來看,翻譯過來內容是指:臨時上傳位置無效。這個臨時位置是哪裏來的,爲什麼會有臨時位置這一說法。
1、對於HTTP POST請求來說,它需要一個臨時目錄來存儲POST數據;
2、因爲該目錄是放到temp文件夾下的一個臨時目錄,對於一些操作系統來講,會經常刪除臨時內容的,所以這個內容就不存在了,導致上述報錯信息說臨時上傳位置無效的結果。(我電腦上裝360安全衛士了,會經常提示我,電腦垃圾太多,讓我清理,所以會經常清理電腦垃圾,包括緩存和臨時文件都會清理的)
三、解決方案
以下是彙總的幾種解決辦法,根據個人喜歡可用不同的方法。
3.1 方案一:重啓本項目
我是懶省事兒,重啓本項目,然後就解決這個問題了。
3.2 方案二:修改配置文件(application.properties或者.yml配置文件)
修改完配置之後,重啓項目
方式一,適用於一些版本舊的項目,目前我知道的是spring boot 2.0.1以下版本
spring.http.multipart.location=/data/upload_tmp
方式二:適用於一些新版本的項目,通常是spring boot 2.0.1以上的版本
spring.servlet.multipart.location=/data/upload_tmp
3.3 方案三:添加項目啓動參數
-java.tmp.dir=/path/to/application/temp/
重啓項目
完結!