欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解Element-UI中上傳的文件前端處理

 更新時間:2019年08月07日 14:37:16   作者:java_augur  
這篇文章主要介紹了詳解Element-UI中上傳的文件前端處理,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

Element-UI對于文件上傳組件的功能點著重于文件傳遞到后臺處理,所以要求action為必填屬性。但是如果需要讀取本地文件并在前端直接處理,文件就沒有必要傳遞到后臺,比如在本地打開一個JSON文件,利用JSON文件在前端進行動態(tài)展示等等。
下面就展示一下具體做法:

首先定義一個jsonContent, 我們的目標是將本地選取的文件轉換為JSON賦值給jsonContent

然后我們的模板文件是利用el-dialog和el-upload兩個組件組合:這里停止文件自動上傳模式:auto-upload="false"

 <el-button type="primary" @click="dialogVisible = true">Load from File</el-button>
 <el-dialog title="Load JSON document from file" :visible.sync="dialogVisible">
  <el-upload :file-list="uploadFiles" action="alert" :auto-upload="false" multiple :on-change="loadJsonFromFile">
   <el-button size="small" type="primary">Select a file</el-button>
   <div slot="tip">upload only jpg/png files, and less than 500kb</div>
  </el-upload>
  <span slot="footer">
   <el-button type="primary" @click="dialogVisible = false">cancel</el-button>
   <el-button type="primary" @click="loadJsonFromFileConfirmed">confirm</el-button>
  </span>
 </el-dialog>

最后通過html5的filereader對變量uploadFiles中的文件進行讀取并賦值給jsonContent

if (this.uploadFiles) {
    for (let i = 0; i < this.uploadFiles.length; i++) {
     let file = this.uploadFiles[i]
     console.log(file.raw)
     if (!file) continue
     let reader = new FileReader()
     reader.onload = async (e) => {
      try {
       let document = JSON.parse(e.target.result)
       console.log(document)
      } catch (err) {
       console.log(`load JSON document from file error: ${err.message}`)
       this.showSnackbar(`Load JSON document from file error: ${err.message}`, 4000)
      }
     }
     reader.readAsText(file.raw)
    }
   }

為方便測試,以下是完整代碼:

另外一篇文章是介紹如何將jsonContent變量中的JSON對象保存到本地文件

<template>
 <div>
  <el-button type="primary" @click="dialogVisible = true">Load from File</el-button>
 <el-dialog title="Load JSON document from file" :visible.sync="dialogVisible">
  <el-upload :file-list="uploadFiles" action="alert" :auto-upload="false" multiple :on-change="loadJsonFromFile">
   <el-button size="small" type="primary">Select a file</el-button>
   <div slot="tip">upload only jpg/png files, and less than 500kb</div>
  </el-upload>
  <span slot="footer">
   <el-button type="primary" @click="dialogVisible = false">cancel</el-button>
   <el-button type="primary" @click="loadJsonFromFileConfirmed">confirm</el-button>
  </span>
 </el-dialog>
</div>
 
</template>
 
<script>
export default {
 data () {
  return {
   // data for upload files
   uploadFilename: null,
   uploadFiles: [],
   dialogVisible: false
  }
 },
 methods: {
  loadJsonFromFile (file, fileList) {
   this.uploadFilename = file.name
   this.uploadFiles = fileList
  },
  loadJsonFromFileConfirmed () {
   console.log(this.uploadFiles)
   if (this.uploadFiles) {
    for (let i = 0; i < this.uploadFiles.length; i++) {
     let file = this.uploadFiles[i]
     console.log(file.raw)
     if (!file) continue
     let reader = new FileReader()
     reader.onload = async (e) => {
      try {
       let document = JSON.parse(e.target.result)
       console.log(document)
      } catch (err) {
       console.log(`load JSON document from file error: ${err.message}`)
       this.showSnackbar(`Load JSON document from file error: ${err.message}`, 4000)
      }
     }
     reader.readAsText(file.raw)
    }
   }
   this.dialogVisible = false
  }
 }
}
</script>

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • vue.js?el-table虛擬滾動完整實例代碼

    vue.js?el-table虛擬滾動完整實例代碼

    這篇文章主要給大家介紹了關于el-table虛擬滾動的相關資料,文中通過實例代碼介紹的非常詳細,對大家學習或者使用vue.js具有一定的參考學習價值,需要的朋友可以參考下
    2022-12-12
  • Vue前端書寫規(guī)范大全(非常詳細!)

    Vue前端書寫規(guī)范大全(非常詳細!)

    在團體開發(fā)項目中,為了團隊所有成員書寫可維護的代碼,而不是一次性的代碼,讓團隊當中其他人看你的代碼能一目了然,下面這篇文章主要給大家介紹了關于Vue前端書寫規(guī)范的相關資料,需要的朋友可以參考下
    2023-01-01
  • Vue+Flask實現圖片傳輸功能

    Vue+Flask實現圖片傳輸功能

    這篇文章主要為大家詳細介紹了Vue+Flask實現圖片傳輸功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • vue如何循環(huán)給對象賦值

    vue如何循環(huán)給對象賦值

    這篇文章主要介紹了vue如何循環(huán)給對象賦值,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • Vue項目打包為exe可安裝程序操作步驟

    Vue項目打包為exe可安裝程序操作步驟

    這篇文章主要給大家介紹了關于Vue項目打包為exe可安裝程序操作步驟的相關資料,Vue是一種流行的JavaScript框架,用于構建單頁面應用程序(SPA),需要的朋友可以參考下
    2023-12-12
  • vue?el-date-picker?日期回顯后無法改變問題解決

    vue?el-date-picker?日期回顯后無法改變問題解決

    這篇文章主要介紹了vue?el-date-picker?日期回顯后無法改變問題解決,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-04-04
  • vue刷新和tab切換實例

    vue刷新和tab切換實例

    下面小編就為大家分享一篇vue刷新和tab切換實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-02-02
  • 解決vue項目 build之后資源文件找不到的問題

    解決vue項目 build之后資源文件找不到的問題

    這篇文章主要介紹了解決vue項目 build之后資源文件找不到的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • Vue實現學生管理功能

    Vue實現學生管理功能

    這篇文章主要為大家詳細介紹了Vue實現學生管理功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • 一文帶你了解vite對瀏覽器的請求做了什么

    一文帶你了解vite對瀏覽器的請求做了什么

    Vite是一種新型前端構建工具,能夠顯著提升前端開發(fā)體驗,下面這篇文章主要給大家介紹了關于vite對瀏覽器的請求做了什么的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2021-12-12

最新評論