handlePreview(file) { getFile(file.id) .then(res => { const blob = new Blob([res]); if (window.navigator.msSaveOrOpenBlob) { // 兼容IE navigator.msSaveBlob(blob, file.name); } else { var a = document.createElement("a"); var event = new MouseEvent("click"); a.download = file.name; a.href = window.URL.createObjectURL(blob); a.dispatchEvent(event); } }) .catch(err => { console.log("err", err); }); }
import request from '@/utils/request' // 请求的返回类型需要为blob否则导出会有问题 export function exportFun1() { return request({ url: '/asset/exportLease', responseType: "blob", method: 'get' }) }
方法二 export function downloadFile(obj, name, suffix) { //obj是后端返回的流
//name是导出文件的名字
//suffix是文件后缀 if (window.navigator.msSaveOrOpenBlob) { // 兼容IE const blob = new Blob([obj]); const fileName = parseTime(new Date()) + '-' + name + '.' + suffix navigator.msSaveBlob(blob, fileName); } else { const url = window.URL.createObjectURL(new Blob([obj])) const element = document.createElement('a') element.style.display = 'none' element.href = url const fileName = parseTime(new Date()) + '-' + name + '.' + suffix element.setAttribute('download', fileName) document.body.appendChild(element) element.click() document.body.removeChild(element) } }