一般我们实现下载功能时,很多时候都是通过后端返回的链接从服务器上把文件下载到本地,但当后端返回给我们的是一个Blob文件流时,我们应该怎么做?
(1) axios方式(推荐)
axios({
method:'get',
url:url,
responseType:'blob' //定义接收类型
})
.then((res) => {
if(res.success && res.result){
this.downFile(res.result.data, res.result.fileName); //下载文件
}
});
downFile = (data, name) => {
if(!data){
alert('数据错误!');
return;
}
let BLOB = new Blob([data]);
let url = window.URL.createObjectURL(BLOB);
let link = document.createElement('a');
link.style.display = 'none';
link.href = url;
link.setAttribute('download', name);
document.body.appendChild(link);
link.click();