项目中用到流文件下载的需求,之前使用的方法一直都没问题,但是这次就是下载不下来,查了多种方法终于解决了,方式如下:
// 下载文件
downLoadFile(e) {
let id = e.target.dataset.id;
let name = e.target.dataset.name;
if(e.target.dataset.id) {
this.$https({
method: 'get',
url: '/wyxt_ubqts_oncloud/common/download',
params: {
'file_id': '526f260d-73c1-422e-b10e-c0a2fe91364d'
},
responseType: "blob"
}).then(res => {
// console.log(res)
// const fileName = res.headers["content-disposition"].split("=")[1];
const _res = res.data;
let blob = new Blob([_res], {type: 'application/pdf'});
let downloadElement = document.createElement("a");
let href = window.URL.createObjectURL(blob); //创建下载的链接
downloadElement.href = href;
// downloadElement.download = fileName; //下载后文件名
downloadElement.download = name; //下载后文件名
document.body.appendChild(downloadElement);
downloadElement.click(); //点击下载
document.body.removeChild(downloadElement); //下载完成移除元素
window.URL.revokeObjectURL(href); //释放掉blob对象
});
}
},