文件流导出下载

65 阅读1分钟

pdf链接下载

createPdf(res, name, fileName) {
  const url = window.URL.createObjectURL(new Blob([res]));
  const link = document.createElement("a");
  link.style.display = "none";
  link.href = url;
  const fileNames = name + '.' +fileName;
  link.setAttribute("download", fileNames);
  document.body.appendChild(link);
  link.click();
  document.body.removeChild(link);
}

流文件 get下载

downloadUrlFile(fileUrl) {

  axios({
    method: "GET",
    url: ${baseURL}/common/download?fileName=${encodeURI(
      fileUrl
    )}&delete=true,
    headers: { Authorization: "Bearer " + getToken() },
    responseType: "blob",
  }).then((res) => {
      const blob = res.data;
      let reader = new FileReader();
      reader.onload = function (e) {
        const elink = document.createElement("a");
        elink.download = fileUrl;
        elink.href = e.target.result;
        document.body.appendChild(elink);
        elink.click();
        document.body.removeChild(elink);
      };
      reader.readAsDataURL(blob);
    })
    .catch((err) => {
      console.log("download response: " + err);
    });

}`

  export function export_excel_file(data, url, list_name) {
      axios({
        url: `${baseURL}/${url}`,
        method: "get",
        responseType: "blob",
        params: data, //与post传参方式不同之处
        headers: { Authorization: getToken() },
      }).then((res) => {
        var blob = new Blob([res.data], {
          type: "application/vnd.openxmlformats-officedocument.wordprocessingml.document;charset=utf-8",
        });
        var filename = list_name + ".xlsx";
        var downloadElement = document.createElement("a");
        var href = window.URL.createObjectURL(blob); //创建下载的链接
        downloadElement.style.display = "none";
        downloadElement.href = href;
        downloadElement.download = filename; //下载后文件名
        document.body.appendChild(downloadElement);
        downloadElement.click(); //点击下载
        document.body.removeChild(downloadElement); //下载完成移除元素
        window.URL.revokeObjectURL(href); //释放掉blob对象
      });
    }`

流文件 post下载

    const downLoad = (url, params, filename) => {
      return service
        .post(url, params, {
          responseType: 'blob'
        })
        .then((data) => {
          const content = data
          const blob = new Blob([content])
          if ('download' in document.createElement('a')) {
            const elink = document.createElement('a')
            elink.download = filename
            elink.style.display = 'none'
            elink.href = URL.createObjectURL(blob)
            document.body.appendChild(elink)
            elink.click()
            URL.revokeObjectURL(elink.href)
            document.body.removeChild(elink)
          } else {
            navigator.msSaveBlob(blob, filename)
          }
          return Promise.reject(content)
          
          
          
          const blob = res.data;
          let reader = new FileReader();
          reader.onload = function (e) {
            const elink = document.createElement("a");
            elink.download = filename;
            elink.href = e.target.result;
            document.body.appendChild(elink);
            elink.click();
            document.body.removeChild(elink);
          };
          reader.readAsDataURL(blob);
          
        })
        .catch((r) => {
          console.error(r)
        })
    }
    
    const handleExport = () =>{
      let params = queryParams.value;
      delete params.pageNum;
      delete params.pageSize;
      const searchParams = new URLSearchParams(params);
      downLoad(`/ssgl/student/export?${searchParams}`,{}, `xxxxx.xlsx`);
    }