日常开发中我们常常需要下载文件,但是后端返回给前端需要下载的文件大致有两种:一种url链接,另一种文件流的形式;
1、前端下载url链接文件
方法1、通过a标签的href直接下载
<a href="https://www.baidu.com/img/bd_logo1.png" download="logo"></a>
方法2、通过 window.open(url) 直接下载
window.open("https://www.baidu.com/img/bd_logo1.png")
2、前端处理 文件流 文件
针对文件流文件,前端需要进行文件类型,blob处理以后通过动态创建a标签的形式下载
Blob对象处理
MDN上描述:Blob 对象表示一个不可变、原始数据的类文件对象。Blob 表示的不一定是JavaScript原生格式的数据。 要从其他非blob对象和数据构造一个 Blob,请使用 Blob() 构造函数
需要利用Blob()构造函数构建一个blob对象,axios请求例子:
axios.get( url, params ).then((res) => {
const data = res