前端下载功能的实现

152 阅读1分钟

1、get请求

如果是get请求,直接通过 window.location.href即可实现下载

var url = this.exportUrl + "/execl/export?date=" + this.tableMonth
window.location.href = url;

2、post请求

先请求接口拿到后端返回的数据,后台返回的是一个二进制文件流,通过Blob实现文件下载。

exportTable() {
  exportUrl(data).then((res) => {
        console.log(res)
        this.download(res)
      })
}

download(data) {
      if (!data) {
        return;
      }
      console.log("aa");
      let BLOB = new Blob([data]);
      let url = window.URL.createObjectURL(BLOB);
      let link = document.createElement("a");
      link.style.display = "none";
      link.href = url;
      link.setAttribute("download", "文件名.xlsx");
      document.body.appendChild(link);
      link.click();
},