vue实现接受后端传过来的zip数据,axios实现

2021-09-28 16:35:01 浏览数 (1)

接受要以blob的方式,这是细节也是重点,这里贴出一个method的实现

代码语言:javascript复制
 exportSelectZip() {
      const totalSelectPicList = this.pictureOfSelectBookList.join("&xxx");
      axios
        .get("xxx"   totalSelectPicList, {
          responseType: "blob",
        })
        .then((response) => {
          let blob = new Blob([response.data], { type: "application/zip" });
          let url = window.URL.createObjectURL(blob);
          const link = document.createElement("a"); // 创建a标签
          link.href = url;
          link.download = "pic.zip"; // 重命名文件
          link.click();
          URL.revokeObjectURL(url); // 释放内存
        })
        .catch(function (err) {
          console.log(err);
        });
    },

responseType: “blob”,十分重要,这里其实是创建了一个a标签并自动点击实现下载功能,并且做到了及时释放内存。

0 人点赞