正在阅读:
- 首页 » 开发运维 » 前端 » vue使用axios下载文件流
vue使用axios下载文件流
vue使用axios下载文件流
创建一个通用接口文件,如api.js
import Vue from 'vue' import { axios } from '@/utils/request' /** * 下载文件 * @param url * @param parameter * @returns {*} */ export function downFile(url,parameter){ return axios({ url: url, params: parameter, method:'get' , responseType: 'blob' }) }
2. 页面创建下载方法
import { downFile } from '@/api' methods: { download(record){ let fileName =record.fileName downFile(this.url.download, { id: record.id }).then((res) => { let data = res if (!data || data.size === 0) { this.$message.warning('文件下载失败') return } if (typeof window.navigator.msSaveBlob !== 'undefined') { window.navigator.msSaveBlob(new Blob([data]), fileName) } else { let url = window.URL.createObjectURL(new Blob([data])) let link = document.createElement('a') link.style.display = 'none' link.href = url link.download = fileName // link.setAttribute('download', fileName) document.body.appendChild(link) link.click() document.body.removeChild(link) //下载完成移除元素 window.URL.revokeObjectURL(url) //释放掉blob对象 } console.log(window.navigator.msSaveBlob) console.log(data.size) }) }, },
3.请求接口
其他说明:
后台,我使用的是springboot整合minio的接口。
后台接口实现:直通车
该日志由 bemender 于 2021年03月17日 发表
转载请注明文本地址:https://www.bemhome.com/post/108.html