vue-resource+element upload上傳(遇到formData總是變為object格式)


 

 

文件上傳這種業務需求很常見,但是最近用了element,仔細看了文檔,按照demo寫了上傳,與后台傳參調取接口時,控制台總是顯示未獲取到文件,想了又想,發現一開始思路就跑遍了。。。

寫此博記錄下遇到的問題。

傳參給后台需要formdata格式的,這種格式也很常見,如下:

// FormData 對象

var form = new FormData();

// 文件對象

form.append("file", fileObj);

// 其他參數

form.append("xxx", xxx);

但是有一點,我發現我怎么傳,控制台始終都是這樣,如下截圖:(估計你們都比我聰明。。此處想打自己一下!!

 

 

 

然后找了半天沒發現為什么,后來發現element里的上傳是組件里已經定義好的,不用再去寫post請求,formData格式也不用定義。。。

 

 官網文檔寫得很詳細,action就是post請求的路徑,字符串格式,headers是頭部,data為其他附加參數;

以下是我們的業務需求:

 

我們業務邏輯是這樣,彈框內部有個上傳按鈕,點擊上傳按鈕時去調取本地文件,等到點擊彈框的確定按鈕之后才會上傳到服務器,然后代碼如下:

data是這樣定義的,需要自己設置X-token:

 

這是點擊彈框的確定按鈕執行的方法,通過submit()方法,很簡單:

這個是判斷文件格式是否符合規范,很多人在before-upload這個方法里判斷這些,但是你會發現有個問題,就是你執行此方法時無論上傳格式是否正確們都會觸發before-remove或者是on-remove這兩個方法,很奇怪,可能是element組件的bug,所以需要加個判斷,以下圖中的isDel就是這層判斷:

以下是判斷刪除的方法:

 

 還有就是上傳成功后的邏輯處理:

 

記錄下這次的坑,希望以后長點心;

 


免責聲明!

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



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