最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

IE9 elementUI文件上傳的問題解決

 更新時間:2018年10月17日 10:00:11   作者:Feliks  
這篇文章主要介紹了IE9 elementUI文件上傳的問題解決,有需要了解IE9 elementUI文件上傳的朋友可參考。希望此文章對各位有所幫助

問題: IE9中無法使用FormData

思路

  • 基于上面的問題,需要使用form表單上傳文件
  • form表單上傳會引起頁面的刷新,因此需要動態(tài)添加一個iframe來避免頁面刷新
  • from表單上傳之后需要調(diào)用回調(diào),此時需要監(jiān)聽iframe的onload事件

  • 文件上傳之后的返回值 Content-Type值不能是application/json 這會導(dǎo)致IE去解析返回結(jié)果,最終調(diào)用文件的保存或者打開,此處需要與后端協(xié)商將Content-Type改為text/plain
  • 如果需要圖片回顯,回顯的圖片路徑中有有query參數(shù),如果有多個參數(shù)會出現(xiàn)&,但是返回結(jié)果顯示在iframe中所以&會被當(dāng)做HTML解析為&所以回顯之前需要將此處轉(zhuǎn)換回來

問題解決

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

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

如何觸發(fā)上傳

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

this.$refs.upload.active = true

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

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

inputFile(newFile, oldFile) {
 // 舊文件活躍 新文件不活躍 此時上傳過程完成
 if (newFile && oldFile && !newFile.active && oldFile.active) {
  this.$refs.upload.active = false
  // 獲得相應(yīng)數(shù)據(jù)
  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) {
   // 獲得響應(yīng)狀態(tài)碼
   console.log('status', newFile.xhr.status)
  }
 }
 // 添加文件
 if (newFile && !oldFile) {
  this.$refs['upload' + this.index].active = true
 }
}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Vue封裝一個Tabbar組件?帶組件路由跳轉(zhuǎn)方式

    Vue封裝一個Tabbar組件?帶組件路由跳轉(zhuǎn)方式

    這篇文章主要介紹了Vue封裝一個Tabbar組件?帶組件路由跳轉(zhuǎn)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • 前端不用跑項目vscode組件效果所見即所得

    前端不用跑項目vscode組件效果所見即所得

    這篇文章主要為大家介紹了一款不用跑項目的vscode組件所見即所得效果的使用方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-04-04
  • vue中使用gantt-elastic實現(xiàn)可拖拽甘特圖的示例代碼

    vue中使用gantt-elastic實現(xiàn)可拖拽甘特圖的示例代碼

    這篇文章主要介紹了vue中使用gantt-elastic實現(xiàn)可拖拽甘特圖,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07
  • Vue3使用echarts繪制特殊樣式的折線圖和柱狀圖

    Vue3使用echarts繪制特殊樣式的折線圖和柱狀圖

    這篇文章主要為大家詳細(xì)介紹了Vue3如何使用echarts實現(xiàn)繪制一些特殊樣式的折線圖和柱狀圖,文中的示例代碼講解詳細(xì),需要的小伙伴可以了解下
    2024-02-02
  • VUE+axios+php實現(xiàn)圖片上傳

    VUE+axios+php實現(xiàn)圖片上傳

    這篇文章主要為大家詳細(xì)介紹了VUE+axios+php實現(xiàn)圖片上傳,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • Vue路由模式中的hash和history模式詳細(xì)介紹

    Vue路由模式中的hash和history模式詳細(xì)介紹

    VUE分為兩種路由模式分別是hash(哈希)和history,他們的區(qū)別是hash模式不會包含在http請求中,并且不會重新加載頁面,而使用history模式的話,如果前端的url和后端發(fā)起請求的url不一致的話,會報404錯誤,所以使用history模式的話我們需要和后端進(jìn)行配合
    2022-09-09
  • vue嵌套組件傳參實例分享

    vue嵌套組件傳參實例分享

    這篇文章主要介紹了vue嵌套組件傳參實例分享,本文以一個vue遞歸組件為例,探究多層嵌套后事件無法觸發(fā)的問題,我們可以通過查看一Demo,便于快速了解,下文列舉例子需要的小伙伴可以參考一下
    2022-04-04
  • 使用vscode添加vue模板步驟示例

    使用vscode添加vue模板步驟示例

    這篇文章主要為大家介紹了vscode添加vue模板步驟示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • Vue3使用Echarts導(dǎo)致tooltip失效問題及解決方法

    Vue3使用Echarts導(dǎo)致tooltip失效問題及解決方法

    Vue3 使用 proxy 對象代理,而 echarts 則使用了大量的全等(===), 對比失敗從而導(dǎo)致了bug,這篇文章主要介紹了Vue3使用Echarts導(dǎo)致tooltip失效問題及解決方法,需要的朋友可以參考下
    2023-08-08
  • vue與ant-tree結(jié)合偽造懶加載并可以查詢

    vue與ant-tree結(jié)合偽造懶加載并可以查詢

    這篇文章主要為大家介紹了vue與ant-tree結(jié)合偽造懶加載并可以查詢實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07

最新評論

吉隆县| 云林县| 乡宁县| 祁阳县| 赣榆县| 股票| 黄山市| 桑日县| 襄汾县| 衡山县| 志丹县| 张家口市| 金乡县| 拜城县| 五指山市| 积石山| 连山| 巧家县| 库车县| 桦甸市| 建昌县| 黑龙江省| 五原县| 柞水县| 肇庆市| 宁都县| 称多县| 石泉县| 民县| 清远市| 和田县| 大连市| 武义县| 都昌县| 电白县| 上饶县| 罗城| 新乐市| 清苑县| 柳林县| 麻阳|