项目场景:
需要根据路径下载文件,之前只支持pdf,现在需要支持html文件下载;
问题描述
我依旧使用Blob对象,根据路径进行下载,但是html下载出来出现了这个问题,下载的html文件打开之后页面显示成[object Object];
axios({ method: 'get', url: '请求文件地址', responseType:'blob'}).then((res: any)=>{
var aBlob = new Blob([res], { type: 'text/html' });
let objectURL = window.URL.createObjectURL(aBlob);
link.href = objectURL;
link.download = props.gfsUrl; // 自定义文件名
link.click(); // 下载
})
原因分析:
然后看了返回的res的输出,发现new Blob([res]应该为new Blob([res.data])
还有一点需要注意,就是发请求时,如果写 responseType:'blob’返回的就是Blob对象,如果不写就是html元素以字符串的形式在res.data里面