后端返回二进制文件流,前端如何下载文件
注意点:要加 responseType: 'blob' , 传入的是res.data(因为返回res就是乱码,导致刚开始传的是res,结果下载下来是object,后来传入res.data就好了)
```
axios.get({
url: 'xxxxxx',
method: 'get',
data:{},
responseType: 'blob', // 声明返回blob格式
}).then(res => {
downLoadBlobFile(res.data);
});
function downLoadBlodFile(excelFlow){
const elink = document.createElement('a');
elink.download = 'XXX.csv';//定义表格名称,后缀是文件格式
elink.style.display = 'none';
const blob = new Blob(, { type: 'text/csv,charset=UTF-8'});
elink.href = URL.createObjectURL(blob);
document.body.appendChild(elink);
elink.click();
document.body.removeChild(elink);
}
``` 我记着filesaver是直接可以传地址的
不太推荐用dom点击式
部分浏览器的话点击会直接跳转到文件当前页面印象里
(filesaver好像也是这种方式...但是微妙的兼容性好一地那)
Saving URLs
FileSaver.saveAs("https://httpbin.org/image", "image.jpg");
李恒道 发表于 2022-10-26 22:15
我记着filesaver是直接可以传地址的
不太推荐用dom点击式
部分浏览器的话点击会直接跳转到文件当前页面印象 ...
我之前就是用dom,发现手机端点下载没反应QAQ
页:
[1]