背景

下载文件功能,点击下载按钮,后端返回二进制文件流,前端执行下载文件功能;当返回错误信息时前端能够正确提示。

步骤一:请求设置responseType

请求数据时responseType不同,ArrayBuffer为arraybuffer,blob为blob。
image.png

步骤二:对响应进行拦截并判断

  • 正确情况
    创建a标签并下载。

    const blob = new Blob([res]);
    const fileName = row.fileName;  //文件名称,带后缀
    const link = document.createElement('a');
    link.href = URL.createObjectURL(res);
    link.download = fileName;
    document.body.appendChild(link);
    link.click();
    URL.revokeObjectURL(link.href);
    document.body.removeChild(link);
  • 错误情况
    当下载失败时,转换返回值,并进行提示。
    image.png

关于blob、ArrayBuffer区别详见下面链接:
https://blog.csdn.net/qq_38974163/article/details/119862253


薇薇
298 声望24 粉丝

路漫漫其修远兮,吾将上下而求索