org.springframework.web.multipart.MultipartException: Failed to parse multipart servlet request;

本文目錄

一、背景描述

 二、異常分析

三、解決方案

3.1 方案一:重啓本項目

3.2 方案二:修改配置文件(application.properties或者.yml配置文件)

3.3 方案三:添加項目啓動參數


一、背景描述

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/

重啓項目

 

完結!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章