前端处理后端返回的文件流,进行文件下载

文章讲述了在接收到后端接口返回的文件流时,如何使用Blob格式处理数据,以便正确下载Word文档。通过设置responseType为Blob,创建新的Blob对象,并指定MIME类型,然后利用FileReader读取并转换数据,最终实现文件的下载功能。
摘要由CSDN通过智能技术生成

二进制流格式

 Blob格式

前言:

        需求:根据后端接口返回的文件流进行数据处理,并实现文件的下载,且下载文件为word文档.

封装下载文件接口:

最开始没带responseType:"Blob",进行文件下载后,里面的内容全部是乱码!!!

代码实现:

//下载文件
async function DownLoadFile(row) {
  let res = await DownLoadFileAPI(row.id);
  const blobURL = window.URL.createObjectURL( 
    new Blob([res.data], { type: "application/vnd.openxmlformats-officedocument.wordprocessingml.document" })
  );
  const tempLink = document.createElement("a");
  (tempLink.style.display = "none"), (tempLink.href = blobURL);
  tempLink.setAttribute("download", row.filename);
  document.body.appendChild(tempLink);
  tempLink.click();
  document.body.removeChild(tempLink);
  window.URL.revokeObjectURL(blobURL);
}

 知识点补充:

        1、new Blob(blobParts, options);

         type的常见类型

扩展名文件类型MIME类型
.docMicrosoft Wordapplication/msword
.docxMicrosoft Wordapplication/vnd.openxmlformats-officedocument.wordprocessingml.document
.jpeg/.jpgJPEG 图片image/jpeg
.mp3MP3 音频audio/mpeg
.pdfPDFapplication/pdf
.xlsMicrosoft Excelapplication/vnd.ms-excel
.xlsxMicrosoft Excelapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheet
.zipZIPapplication/zip

           查看更多:Media Types

        2、格式转化

        二进制流转blob

const blob = new Blob([BufferSource],{type:type})

        blob转base64

BlobToBase64(blob,cb){
    const fileReader = new FileReader()
    fileReader.onload = function(e){
        cb(e.target.result)
    }
    fileReader.readAsDataURL(blob)
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值