IOS適配element Upload組件

Hello,大家週末好,最近在寫項目中遇到一個很奇葩的問題就是使用element upload組件在iOS中多張上傳到oss的時候只有第一張圖片上傳成功,後面的圖片都上傳失敗了,今天在這裏給大家講解一下解決方案。

分析問題

upload組件中有一個必傳參數 action	(必選參數,上傳的地址)
**注意這裏只要配置上傳地址,組件會自動發送請求上傳到服務器(post請求)
(參數爲FormData)**
我們來做了一個測試,最後得到的結果是iOS系統中post請求多次地址,iOS會取post緩存

解決方法

upload組件還有一個參數 http-request	覆蓋默認的上傳行爲,可以自定義
上傳的實現(function<el-upload
        class="upload-demo"
        action="action"
        :on-preview="handlePreview"
        list-type="picture"
        :data="params"
        :file-list="fileList"
        :multiple="true"
        :http-request="uploadSectionFile"
        :on-remove="handleRemove"
        :disabled="is_disabled"
      >
        <el-button size="small" type="primary" v-show="editable">上傳圖片或PDF</el-button>
      </el-upload>


methods:{
   uploadSectionFile(){
   //自己做來做上傳如果自己來做得話建議就不要用這個組件了,添加需求的時候
   //比較好控制
   let forDate = new FormData(); //定義FormData對象
   formDate.append('key',key);  //添加和後臺約定的上傳參數
   ***注意這裏不能直接append一個對象,最好一個參數一個參數的append
     let random = Math.floor(Math.random() * 10000); // 隨機數
   this.axios.post('上傳地址?ios=' + 'new Date().getTime() + random'+ ' , forDate).then(res=>{})
   //這裏添加隨機數和時間是爲了保障每次請求的地址不一樣iOS就不會讀取緩存
  // ios這個參數是自定義的
}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章