js中下载文件

//实现文件下载
export const blobDownload = (response) => {
  const realFileName = response.FileName; //下载的文件名
  const realFileType = response.FileType; //下载文件类型
  const data = window.atob(response.FileContent); //下载的文件流
  const aBuffer = new window.ArrayBuffer(data.length);
  const uBuffer = new window.Uint8Array(aBuffer);
  for (var i = 0; i < data.length; i++) {
    uBuffer[i] = data.charCodeAt(i) & 0xff;
  }
  const blob = new Blob([uBuffer], { 'type': 'application/msword' });

  if (window.navigator.msSaveOrOpenBlob) {
    navigator.msSaveBlob(blob, realFileName);
  } else {
    var link = document.createElement('a');
    link.href = window.URL.createObjectURL(blob);
    link.download = realFileName;
    //此写法兼容可火狐浏览器
    document.body.appendChild(link);
    var evt = document.createEvent("MouseEvents");
    evt.initEvent("click", false, false);
    link.dispatchEvent(evt);
    document.body.removeChild(link);
  }
}


例:
 // 导出
  const onExport = () => {
    dispatch({
      type: 'rosterModel/ExportRoster',
      payload: {
        "CourseId": getPageQuery().Id,
        "ClassId": classId,
        ...currentFormValue,
        "AttendeeName": searchValue,
      },
      callback: (res) => {
        console.log(res); 535if (res && res.FileContent) {
          blobDownload(res)**********这里;传给后端后  后端返回给我文件流
          message.success(`File export successfully`);
        }
      }
    })
  }
下面是535行 后端返回的res 截图:

在这里插入图片描述

{FileName: "Registrar.xlsx", FileType: ".xlsx",}
FileContent: "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"
FileName: "Registrar.xlsx"
FileType: ".xlsx"

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值