1. 程式人生 > >SpringMVC——jsp上傳圖片報錯The current request is not a multipart request的解決辦法

SpringMVC——jsp上傳圖片報錯The current request is not a multipart request的解決辦法

報錯介面如下:

 

主要報錯語句為:

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------檔案上傳原始碼解析