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

2022-07-21 07:55:14

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

花了还是有一段时间,只要是从意识到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博客

  • 作者:shihezhengshz
  • 原文链接:https://blog.csdn.net/shihezhengshz/article/details/120767656
    更新时间:2022-07-21 07:55:14