blob导出数据

119 阅读1分钟
export function downloadReportList(params, url) {
  return request({
    method: "get",
    params,
    responseType: "blob",
    url: url,
    timeout: 300000,
  }).then((response) => {
    const contentType = response.headers["content-type"];
    var name = decodeURI(
      response.headers["content-disposition"]
        .split("filename=")[1]
        .replace(/"/g, "")
    );
    const blob = new Blob([response.data], { type: contentType });
    if ("download" in document.createElement("a")) {
      // 非IE下载
      const elink = document.createElement("a");
      elink.download = decodeURIComponent(name);
      elink.style.display = "none";
      elink.href = URL.createObjectURL(blob);
      document.body.appendChild(elink);
      elink.click();
      URL.revokeObjectURL(elink.href); // 释放URL 对象
      document.body.removeChild(elink);
    } else {
      // IE10+下载
      navigator.msSaveBlob(blob, name);
    }
  });
}