后端接口返回的是乱码,如何转为blob,以及如何下载

需求

在文件回显后,点击文件进行下载

声明

这是我的笔记,原链接在这里
https://blog.csdn.net/qq_24607837/article/details/98196114

解决办法

1.返回乱码如何转为blob

请求的时候添加这一句
responseType:'blob'

2.转为blob如何下载

 downLoadile(index).then((res) => {
        // 获取到了res
        let blob = new Blob([res]); //type为所需要下载的文件格式,以xls文件为例
        if ("download" in document.createElement("a")) {
          //支持a标签download的浏览器
          const link = document.createElement("a"); //创建a标签
          link.download = file.name; //a标签添加属性
          link.style.display = "none";
          link.href = URL.createObjectURL(blob);
          document.body.appendChild(link);
          link.click(); //执行下载
          URL.revokeObjectURL(link.href); //释放url
          document.body.removeChild(link); //释放标签
        } else {
          navigator.msSaveBlob(blob, file.name);
        }
   });
posted @ 2021-08-11 13:40  是天天呀  阅读(640)  评论(0)    收藏  举报