SpringMVC——jsp上傳圖片報錯The current request is not a multipart request的解決辦法
阿新 • • 發佈:2018-11-20
報錯介面如下:
主要報錯語句為:
The current request is not a multipart request
就是說當前這個請求不是一個multipart request,也就是說不是上傳檔案的請求。
那怎麼辦呢?
這裡我們需要知道一點,spring在處理入參的時候, 遇到MultipartFile相關就會先去校驗。(在controller中會用MultipartFile接受引數)
那怎麼校驗呢?
1.當在form中提交的資訊包含圖片的時候,必須要用POST方法。
如果是POST方法,它就會深入去檢測請求。
2. 請求的contentType 必須設定為以 "multipart/" 開頭。
此外,只有噹噹前請求的contentType是 "multipart/" 的時候,才會將此請求當做檔案上傳的請求。
因此還需要將請求的contentType 設定為“multipart”開頭(通常是multipart/form-data)。
這裡分兩種情況:
2.1當用form上傳的時候
在from表單的屬性設定裡面加上enctype="multipart/form-data"
2.2當用ajax上傳的時候
用ajax提交的時候在頁面設定<meta http-equiv="Content-Type" content="multipart/form-data; charset=utf-8" />
滿足上面兩個條件,才會將請求當做檔案上傳的請求。
一般滿足以上條件,就沒有問題了。
至於其中的具體緣由,這就涉及到SpringMVC中上傳檔案的原理了,這裡我就不加以敘述(其實我一時半會也說不清),有一篇寫的很好的文章,大家有興趣的話可以去看一看這篇文章:深入springMVC------檔案上傳原始碼解析。