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)
}
}