91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何解決IE9 elementUI文件上傳的問題

發布時間:2021-07-21 11:10:52 來源:億速云 閱讀:340 作者:小新 欄目:web開發

小編給大家分享一下如何解決IE9 elementUI文件上傳的問題,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

問題: IE9中無法使用FormData

思路

  • 基于上面的問題,需要使用form表單上傳文件

  • form表單上傳會引起頁面的刷新,因此需要動態添加一個iframe來避免頁面刷新

  • from表單上傳之后需要調用回調,此時需要監聽iframe的onload事件

  • 文件上傳之后的返回值 Content-Type值不能是application/json 這會導致IE去解析返回結果,最終調用文件的保存或者打開,此處需要與后端協商將Content-Type改為text/plain

  • 如果需要圖片回顯,回顯的圖片路徑中有有query參數,如果有多個參數會出現&,但是返回結果顯示在iframe中所以&會被當做HTML解析為&所以回顯之前需要將此處轉換回來

問題解決

項目使用VUE編寫,UI是ElementUI,但是Element官方明確了upload方面是不支持IE9的,看源碼的意思是已經擱置了iframe上傳的后續開發

改用vue-upload-component 作者對IE9專門做了兼容,就是使用起來理解成本有點兒高

如何觸發上傳

通過ref獲取upload實例,在添加文件時 激活上傳

this.$refs.upload.active = true

如何判斷當前上傳的狀態(添加,更新,刪除,上傳成功,上傳失敗)

每次上傳的狀態變化時 都會調用@input-file綁定的回調,形參是newFile, oldFile,通過新舊文件的對比來得到當前的狀態,感覺有點兒反策略模式的意思,自己通過元狀態的組合來得到當前狀態,習慣的話覺得還是挺有意思的

inputFile(newFile, oldFile) {
 // 舊文件活躍 新文件不活躍 此時上傳過程完成
 if (newFile && oldFile && !newFile.active && oldFile.active) {
  this.$refs.upload.active = false
  // 獲得相應數據
  let res = '{}'
  // 此處判斷相對簡單,可以參考jquery.form.js中做的判斷
  if (/<pre/.test(newFile.response)) {
   res = />(.*)</.exec(newFile.response)[1]
  }
  res = JSON.parse(res)
  if (res.code !== 200) {
   if (res.code === 402) {
    this.$route.push('/login')
    return
   }
   Message.error(res.message)
  } else {
   Message.success('上傳成功')
   // 回顯圖片
   this.upload.url = res.data.url.replace(/&amp;/g, '&')
  }
  if (newFile.xhr) {
   // 獲得響應狀態碼
   console.log('status', newFile.xhr.status)
  }
 }
 // 添加文件
 if (newFile && !oldFile) {
  this.$refs['upload' + this.index].active = true
 }
}

以上是“如何解決IE9 elementUI文件上傳的問題”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

比如县| 乌鲁木齐县| 榆林市| 三门县| 东台市| 巴马| 诏安县| 本溪市| 卓尼县| 桃源县| 故城县| 屏南县| 安宁市| 丹东市| 德惠市| 汝南县| 凯里市| 阜康市| 体育| 睢宁县| 广东省| 惠州市| 洪雅县| 天水市| 金山区| 含山县| 锦州市| 邢台县| 洛川县| 柘城县| 昆山市| 任丘市| 凤庆县| 肥东县| 伊吾县| 武冈市| 衡南县| 黄骅市| 灵山县| 三都| 凌源市|