ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

下载文件-get方式

2022-06-21 12:34:34  阅读:133  来源: 互联网

标签:文件 get fileName headers window let blob downloadElement 下载


import axios from "axios";

export const axiosDownload = async (url, params, fileName) => {
  let res = await axios.get(url, {
    responseType: 'blob',
    headers: { 'content-type': 'application/json; charset=utf-8' },
    params: params,
  });
  let blob = new Blob([res.data]);
  let downloadElement = document.createElement('a');
  let href = window.URL.createObjectURL(blob); //创建下载的链接
  downloadElement.href = href;
  downloadElement.download = fileName; //下载后文件名
  document.body.appendChild(downloadElement);
  downloadElement.click(); //点击下载
  document.body.removeChild(downloadElement); //下载完成移除元素
  window.URL.revokeObjectURL(href); //释放掉blob对象
};
export const axiosDownload = async (url, params, fileName) => {
  const hide = message.loading('正在加载中,请耐心等待', 3);
  let res = await axios.get(url + '?random=' + Math.random(), {
    responseType: 'blob',
    headers: {'content-type': 'application/json; charset=utf-8'},
    params: params,
  });
  let headers = res.headers;
  if (headers.suffix && headers.fileName) {
    fileName = decodeURI(headers.fileName, "utf-8") + headers.suffix;
  }
  console.log("headers", headers);
  //
  let blob = new Blob([res.data], {
    type: 'application/octet-stream',
    'Content-Disposition': 'attachment'
  });
  if (window.navigator && window.navigator.msSaveOrOpenBlob) {
    // 兼容ie浏览器
    window.navigator.msSaveOrOpenBlob(blob, fileName)
  } else {
    // 谷歌,火狐等浏览器
    let url = window.URL.createObjectURL(blob)
    let downloadElement = document.createElement('a')
    downloadElement.style.display = 'none'
    downloadElement.href = url
    downloadElement.download = fileName
    document.body.appendChild(downloadElement)
    downloadElement.click()
    document.body.removeChild(downloadElement)
    window.URL.revokeObjectURL(url)
  }
  hide();
  message.success("已加入下载队列")
};

 

标签:文件,get,fileName,headers,window,let,blob,downloadElement,下载
来源: https://www.cnblogs.com/domin520Jian/p/16396419.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有