AJAX實現文件上傳功能報錯Current request is not a multipart request詳解
想做一個文件上傳,spring boot配合ajax來進行。卻報錯:current request is not a multipart request
這是錯誤截圖:
當時發生這種錯誤,我是很震驚的,我以為找了很多辦法來解決。
有以下辦法,當然這些并未解決我的問題,但是部分有用,就先列舉出來:
1.在頁面頭部加入信息:
<meta http-equiv="content-type" content="multipart/form-data; charset=utf-8" />
此方法 未解決 問題!
2.在form表單加入屬性:enctype
<form method="post" enctype="multipart/form-data"> <input type="file" name="file" /> </form>
此方法 未解決 問題!
3.后端:@requestparam multipartfile file 改為 @requestpart multipartfile file
此方法 未解決 問題!
還有個別方法。。。都不行
下面是解決方法,我之前的ajax代碼:
$('#upload-ok').click(function () { var form = document.getelementbyid("upload-form"); var file = new formdata(form); $.ajax({ url: "/addfile", type: "post", processdata:false, contenttype:false, data:{ "file":file }, success: function (date) { xxxxxx }, error: function (date) { xxxxxx } }) })
正確代碼:
$('#upload-ok').click(function () { var form = document.getelementbyid("upload-form"); var file = new formdata(form); $.ajax({ url: "/addfile", type: "post", processdata:false, contenttype:false, //重要部分,data的傳的是整個表單,不用大括號包裹;不用自定義變量名 data:file, success: function (date) { xxxxxx }, error: function (date) { xxxxxx } }) })
就這樣,解決!!!
到此這篇關于ajax實現文件上傳功能報錯current request is not a multipart request詳解的文章就介紹到這了,更多相關ajax文件上傳內容請搜索碩編程以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持碩編程!