• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

js导出文件流

武飞扬头像
pany_k
帮助1


/*
 * @params {string} url 请求地址
 * @params {object} resOpts 请求配置参数
 * @params {object} headers 请求头
 */

// 文件导出
export const exportFileRequest = (url, resOpts) => {
 const token = ''   // 这里面是token
  const headers = { Authorization: "Bearer "   token };
  return axios({
    method: "get",
    url: `${baseURL}${url}`,
    params: resOpts,
    responseType: "blob",
    headers: headers
  });
};

/*
 * @params  res exportFileRequest返回的数据
 */

export function downloadFile(res) {
  fileToJson(res.data).then(resove => {
    if (resove && resove.code) {
      aleart(resove.msg)
    } else {
     aleart('文件下载中,请稍等')
      const filename = res.headers["filename"];
      const name = decodeURIComponent(filename);
      // 文件导出
      if (!res.data) {
        return;
      }
      let url = window.URL.createObjectURL(new Blob([res.data]));
      let link = document.createElement("a");
      link.style.display = "none";
      link.href = url;
      link.setAttribute("download", `${name}`);
      document.body.appendChild(link);
      link.click();
    }
  });
}

function fileToJson(file) {
  return new Promise((resolve, reject) => {
    const reader = new FileReader();
    reader.onload = res => {
      const { result } = res.target; // 得到字符串
      let index = result.indexOf("code");
      if (index != -1) {
        const data = JSON.parse(result); // 解析成json对象
        resolve(data);
      } else {
        resolve(result);
      }
    }; // 成功回调
    reader.onerror = err => {
      reject(err);
    }; // 失败回调
    reader.readAsText(new Blob([file]), "utf-8"); // 按照utf-8编码解析
  });
}

学新通

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhggheke
系列文章
更多 icon
同类精品
更多 icon
继续加载