实现后端返回的文档流,点击下载
<div class="prom-add" @click="downLoad"><i class="el-icon-download"></i>下载</div>
import request from '@/router/axios'
//下载 async downLoad(){ let params = { start: this.dateVal[0], end: this.dateVal[1], platform: this.value1, } let res = await exportInviteSourceData(params) //后端返回的文档流,如上图 this.downBlobFile('/admin/frontedUsers/export', res.data, '邀请/注册.xlsx') },downBlobFile(url, query, fileName) { let config = { url: url, method: 'get', responseType: 'blob', params: query } if (!url.startsWith('/')) { config.withCredentials = false } return request(config).then((response) => { // 处理返回的文件流 const blob = response.data if (blob && blob.size === 0) { this.$notify.error('内容为空,无法下载') return } const link = document.createElement('a') link.href = window.URL.createObjectURL(blob) link.download = fileName document.body.appendChild(link) link.click() window.setTimeout(function () { window.URL.revokeObjectURL(blob) document.body.removeChild(link) }, 0) }) }
标签:vue,--,url,window,link,blob,文档,下载 From: https://www.cnblogs.com/anna001/p/17918373.html