jquery-ajax實現文件上傳異常處理web.multipart.MultipartException


異常如下:

org.springframework.web.multipart.MultipartException: The current request is not a multipart request

原因分析:

可能原因1:

form表單中沒有添加 enctype="multipart/form-data" 屬性

可能原因2:

請求方式必須為post,如果不是則必定出錯

可能原因3:

請求的contentType不是"multipart/form-data" 【可以在控制層使用request.getContentType()測試查看】

那么分析一下springmvc中如對request請求類型進行判斷:

當spring對請求進行處理的時候首先判斷請求是否是文件上傳請求,如果controller曾匹配的參數類型為MultipartFile

並且請求不是文件上傳請求,這時候就會拋出上面的那個一場,而spring判斷請求類型的依據就是ContentType

所以解決方案就顯而易見了,我這里使用的是jquery-ajax請求,代碼如下:

 1 $.ajax({
 2             type: form.method || 'POST',
 3             url:$form.attr("action"),
 4             data:$form.serializeArray(),
 5             contentType: "multipart/form-data",
 6             dataType:"json",
 7             cache: false,
 8             success: alter("success"),
 9             error: alert("error")
10         });

想想看為了處理這個問題也花了一天的時間,本人謹奉上如上心得,如有問題,希望留言探討!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM