1、后台返回的二进制字节流 byte[ ]
{responseType:'arraybuffer} 设置好后端接收返回的格式,一般还有json,buffer,blob
axios.post('url',params,{responseType:'arraybuffer}).then(res=>{
// 开始处理文件下载 - res.data为文件流
let src= window.URL.createObjectURL(new Blob([res.data], {
// 后台传递的文件类型 - 此处我是直接从后台获取的
// 也可以根据文件类型添加
type: res.headers['content-type']
}));
const link = document.createElement('a');
link.style.display = 'none';
link.href = src;
// fileName 文件的名称
link.setAttribute('download', 'fileName'+Date.now())
document.body.appendChild(link)
link.click();
document.body.removeChild(link);
})
2、后台返回的Base64
这个就没什么了,强大的 a 直接下载就行了,将数据赋给 a.href 就 ok; Base64 直接已经是张图片了,复制到浏览器url地址里直接可以显示;