背景 開發一個圖片上傳功能 需求要用vant中的Uploader , 發現 Uploader組件官方封裝返回的數據是加密的,不適合我這個項目(需要上傳到本地ftp伺服器), 看了一下官方 issue 發現有人提問 官方有回覆 加密數據轉 formdata格式的操作, 複製過來發現不行,又搜索了一下度 ...
前言
開發一個圖片上傳功能 需求要用vant中的Uploader ,
發現 Uploader組件官方封裝返回的數據是加密的,不適合我這個項目(需要上傳到本地ftp伺服器),
看了一下官方 issue 發現有人提問 官方有回覆 加密數據轉 formdata格式的操作,
複製過來發現不行,又搜索了一下度娘,終於解決問題,現在把坑記錄一下
官方提供的格式轉化(沒起效。。。)
1 const formData = new FormData(); 2 formData.append('file', file);
這是我項目裡面實現的代碼:axios(需要設置請求頭)
html代碼
1 <div class="posting_uploader"> 2 <div class="posting_uploader_item" v-for="(item,index) in posting_data.pathList" :key="index"> 3 <img :src="item" alt> 4 <van-icon name="close" @click="del_img(index)"/> 5 </div> 6 <van-uploader :after-read="onRead" :accept="'image/*'" v-show="posting_data.pathList.length<6"> 7 <img src="./icon_addpic.png" alt class> 8 </van-uploader> 9 </div>
js 代碼
1 // 上傳圖片 2 async onRead(file) { 3 let formData = new window.FormData(); 4 formData.append('file', file.file); 5 try { 6 let res = await util.ajax.post(Url, formData, { 7 headers: { 8 "Content-Type": "multipart/form-data" 9 } 10 }); 11 console.log(res); 12 if (XXX) { 13 XXX 14 } else { 15 XXX 16 } 17 } catch (e) { 18 console.log(e); 19 this.$toast(`網路連接錯誤, 請稍後再試!`) 20 } 21 },
實現效果
記錄走過的路,踩過的坑,互勉。
前端交流群:87709616
有不同意見的可以留言,我們一起討論。