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

VUE+ElementUI下載文件的幾種方式(小結(jié))

 更新時(shí)間:2023年01月13日 09:50:32   作者:白野澤  
本文主要介紹了VUE+ElementUI下載文件的幾種方式(小結(jié)),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

1.創(chuàng)建超鏈接,通過a標(biāo)簽的鏈接向后端服務(wù)發(fā)get請求,接收后端的文件流

<a :href='"/user/downloadExcel"' >下載模板</a>

2.創(chuàng)建iframe的方式

<el-button size="mini" type="text" icon="el-icon-download" @click="handleDownload(scope.row)">下載</el-button>
? ? /* 下載 */
? ? handleDownload(row) {
? ? ? this.loadingOverLay = this.$loading({
? ? ? ? lock: true,
? ? ? ? text: "文件生成中",
? ? ? ? spinner: "el-icon-loading",
? ? ? ? background: "rgba(0,0,0,0.7)",
? ? ? });
? ? ? var elemIF = document.createElement("iframe");
? ? ? elemIF.src = process.env.VUE_APP_BASE_API + "/transcode/download/" + row.id;
? ? ? elemIF.style.display = "none";
? ? ? document.body.appendChild(elemIF);
? ? ? this.loadingOverLay.close();
? ? },

3.對(duì)后端發(fā)的post請求,使用blob格式

<el-button ?size="mini" class="filter-item" type="primary" icon="el-icon-download" @click="handleExport(scope.row)">導(dǎo)出</el-button>
//method方法
handleExport(row){
const url="/user/downloadExcel"
const options = {snapshotTime:formatDate(new Date(row.snapshotTime), 'yyyy-MM-dd hh:mm')}
exportExcel(url,options)
}
/**
?* 封裝導(dǎo)出Excal文件請求
?* @param url
?* @param data
?* @returns {Promise}
?*/
//api.js
export function exportExcel(url, options = {}) {
? return new Promise((resolve, reject) => {
? ? console.log(`${url} 請求數(shù)據(jù),參數(shù)=>`, JSON.stringify(options))
? ? axios.defaults.headers['content-type'] = 'application/json;charset=UTF-8'
? ? axios({
? ? ? method: 'post',
? ? ? url: url, // 請求地址
? ? ? data: options, // 參數(shù)
? ? ? responseType: 'blob' // 表明返回服務(wù)器返回的數(shù)據(jù)類型
? ? }).then(
? ? ? response => {
? ? ? ? resolve(response.data)
? ? ? ? let blob = new Blob([response.data], {
? ? ? ? ? type: 'application/vnd.ms-excel'
? ? ? ? })
? ? ? ? console.log(blob)
? ? ? ? let fileName = Date.parse(new Date()) + '.xlsx'
? ? ? ? if (window.navigator.msSaveOrOpenBlob) {
? ? ? ? ? // console.log(2)
? ? ? ? ? navigator.msSaveBlob(blob, fileName)
? ? ? ? } else {
? ? ? ? ? // console.log(3)
? ? ? ? ? var link = document.createElement('a')
? ? ? ? ? link.href = window.URL.createObjectURL(blob)
? ? ? ? ? link.download = fileName
? ? ? ? ? link.click()
? ? ? ? ? //釋放內(nèi)存
? ? ? ? ? window.URL.revokeObjectURL(link.href)
? ? ? ? }
? ? ? },
? ? ? err => {
? ? ? ? reject(err)
? ? ? }
? ? )
? })
}

4.導(dǎo)出json文件

1.安裝:

npm install file-saver --save

2.引入:

import FileSaver from 'file-saver'
/**?
?* data: 封裝好的json數(shù)據(jù)?
?* JSON.stringify(data, null, 2): 格式化json數(shù)據(jù) 方便閱讀
?* new Blob(parame1, parame2): 轉(zhuǎn)為Blob文件流.
?* parame1 [] 數(shù)據(jù)源?
?* parame2 文件流類型
?*/
const blob = new Blob([JSON.stringify(data, null, 2)], {type: 'application/json'})
?
/**?
?* FileSaver.saveAs(parame1, parame2) ?瀏覽器保存文件
?* parame1: Blob文件流
?* parame2:文件名
?*/
FileSaver.saveAs(blob, '文件名.json')

到此這篇關(guān)于VUE+ElementUI下載文件的幾種方式(小結(jié))的文章就介紹到這了,更多相關(guān)VUE ElementUI下載文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue2移動(dòng)端+swiper實(shí)現(xiàn)異形的slide方式

    vue2移動(dòng)端+swiper實(shí)現(xiàn)異形的slide方式

    這篇文章主要介紹了vue2移動(dòng)端+swiper實(shí)現(xiàn)異形的slide方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • 詳解Vue如何進(jìn)行表單聯(lián)動(dòng)與級(jí)聯(lián)選擇

    詳解Vue如何進(jìn)行表單聯(lián)動(dòng)與級(jí)聯(lián)選擇

    表單聯(lián)動(dòng)和級(jí)聯(lián)選擇是Vue.js中常見的功能,在下面的文章中,我們將討論如何在Vue.js中實(shí)現(xiàn)表單聯(lián)動(dòng)和級(jí)聯(lián)選擇,感興趣的小伙伴可以了解一下
    2023-06-06
  • Vue插件實(shí)現(xiàn)過程中遇到的問題總結(jié)

    Vue插件實(shí)現(xiàn)過程中遇到的問題總結(jié)

    隨著Vue.js越來越火,Vue.js 的相關(guān)插件也在不斷的被貢獻(xiàn)出來,數(shù)不勝數(shù),這篇文章主要給大家介紹了關(guān)于Vue插件實(shí)現(xiàn)過程中遇到的問題,需要的朋友可以參考下
    2021-08-08
  • Vue實(shí)現(xiàn)數(shù)據(jù)導(dǎo)入的四種方法(resource、Axios、Fetch、Excel導(dǎo)入)

    Vue實(shí)現(xiàn)數(shù)據(jù)導(dǎo)入的四種方法(resource、Axios、Fetch、Excel導(dǎo)入)

    本文主要介紹了Vue實(shí)現(xiàn)數(shù)據(jù)導(dǎo)入的四種方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • Vue前端利用slice()方法實(shí)現(xiàn)分頁器

    Vue前端利用slice()方法實(shí)現(xiàn)分頁器

    分頁功能是常見的需求之一,本文主要介紹了Vue前端利用slice()方法實(shí)現(xiàn)分頁器,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • Vue中import與@import的區(qū)別及使用場景說明

    Vue中import與@import的區(qū)別及使用場景說明

    這篇文章主要介紹了Vue中import與@import的區(qū)別及使用場景說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • 淺談VUE uni-app 基礎(chǔ)組件

    淺談VUE uni-app 基礎(chǔ)組件

    這篇文章主要介紹了uni-app 的基礎(chǔ)組件,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-10-10
  • Vue中Axios從遠(yuǎn)程/后臺(tái)讀取數(shù)據(jù)

    Vue中Axios從遠(yuǎn)程/后臺(tái)讀取數(shù)據(jù)

    今天小編就為大家分享一篇關(guān)于Vue中Axios從遠(yuǎn)程/后臺(tái)讀取數(shù)據(jù),小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • 關(guān)于Vue中this.$set的正確使用

    關(guān)于Vue中this.$set的正確使用

    我們在項(xiàng)目開發(fā)的過程中,經(jīng)常會(huì)遇到這種情況:為data中的某一個(gè)對(duì)象添加一個(gè)屬性,我們該如何解決這個(gè)問題呢,下面小編給大家?guī)砹薞ue中this.$set的正確使用,感興趣的朋友跟隨小編一起看看吧
    2022-12-12
  • vue實(shí)現(xiàn)按鈕文字動(dòng)態(tài)改變

    vue實(shí)現(xiàn)按鈕文字動(dòng)態(tài)改變

    這篇文章主要介紹了vue實(shí)現(xiàn)按鈕文字動(dòng)態(tài)改變方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11

最新評(píng)論