下载后端传回二进制流pdf后前端显示空白pdf

场景:我调用第三方接口,返回一个下载文件

花了还是有一段时间,只要是从意识到axios接收参数需要变成接收文件,到接收文件的格式还有讲究,哇!

好了,说正事:

1.首先,后端返回一个可下载二进制流, 那么前端axios接收格式就得变,如下两种,怎么使用看axios去喽~诶嘿~

responseType: 'arraybuffer'
responseType: 'blob'

 2.上面两种格式说实话我也没去看他们区别,第一个arraybuffer是我们后端导出文件时候用的,第二个blob就是第三方接口返回下载pdf文件用的。

3.格式改了,怎么下载(忘记代码哪里复制的了,挺久远了)?

至于Blob的type,下载什么格式文件,最好上网搜一搜,或者把文件转成base64,逗号前面一串可能有,不确定,这个我也没试过,单纯的懒……

let blob = new Blob([res], {type: 'application/pdf'});
// 创建a标签->下载->删除a标签
const link = document.createElement('a');
link.style.display = 'none';
link.href = URL.createObjectURL(blob);
link.download = '网签合同模板';
document.body.appendChild(link);
link.click();
document.body.removeChild(link);

启发性链接:后端返回二进制文件流,前端如何下载文件_天猫精灵998的博客-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值