el-upload多選文件上傳報錯解決方案
在element-ui中,el-upload
可以進行文件多選操作。
在多選文件上傳時,會循環調用上傳方法。在第一次循環時,文件可以正常上傳,第二次開始就會在
progress
事件中報錯:
嘗試上傳2個文件,在這裡打印progress
事件的參數:
會發現在第二次循環的時候,事件獲取不到file,所以接下來的操作無法正常進行。如果不處理這個問題的話,上傳方法依然可以使用,隻不過最終傳上去的隻是第一個文件。
本人目前還不知道是什麼原因造成瞭這個結果。但是經過查找相關問題找到瞭解決辦法:
在進行文件多選上傳的時候,創建一個中間變量去進行對文件的添加和刪除操作,原有的filelist
隻進行頁面列表的顯示,在提交表單的時候對數據進行處理,將中間變量的值重新賦給接口需要的字段。這麼做的目的就是避免去直接操作filelist
。
這裡隻展示關鍵部分代碼:
/** * file:上傳成功後的文件參數 * isMultiple:true=>多選;false:=>單選 */ handlePictureSuccess(file,isMultiple){ // 單選、多選是可配字段,在這裡進行分別處理 if(isMultiple){ ··· // file返回的數據很多,隻添加需要的數據 this.realFileList.push({path:file.path,name:file.name,url:file.url}) ··· }else{ ··· this.fileList.push({path:file.path,name:file.name,url:file.url}) ··· } },
/** * 提交表單 * form:表單 */ submitFn(form){ ··· const fileList = [] this.$refs.Form.realFileList.forEach(el=>{ fileList.push(el) }) ··· },
到此這篇關於el-upload多選文件上傳報錯解決方案的文章就介紹到這瞭,更多相關el-upload多選文件上傳 內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- 解決el-upload批量上傳隻執行一次成功回調on-success的問題
- vue el-upload上傳文件的示例代碼
- vue使用element實現上傳圖片和修改圖片功能
- antd+react中upload手動上傳單限制上傳一張
- 解析element-ui中upload組件傳遞文件及其他參數的問題