修身养性,知行合一

  • 首页
  • 爱码
    • 系统
    • 数据库
    • JavaScript
    • CSharp
    • Python
  • 生活
    • 文化
    • 美食
  • 杂谈
  • 关于
修身养性,知行合一
码字,杂谈
  1. 首页
  2. 爱码
  3. 前端
  4. JavaScript
  5. 正文

使用axios下载文件

2019年11月28日 2606点热度 0人点赞 0条评论

因为下载还是挺常见的,所以用axios封装了一下,直接调用即可。

很简单的封装,一般情况下,只需要传入文件路径,文件名,和文件的mime类型即可。

/**
 * Encapsulate Download methods, download files.
 * @param url
 * @param filename
 * @param filetype: file mime type
 * @param config: header config, a object
 * @returns {Promise}
 */
export function download(url, filename, filetype, config = {}) {
  return new Promise((resolve, reject) => {
    axios({ url, responseType: "blob", method: "GET", ...config })
      .then(result => {
        var fileURL = window.URL.createObjectURL(
          new Blob([result.data], { type: filetype })
        );
        var fileLink = document.createElement("a");

        fileLink.href = fileURL;
        fileLink.setAttribute("download", filename);
        document.body.appendChild(fileLink);

        fileLink.click();
        resolve(result);
      })
      .catch(err => {
        reject(err);
      });
  });
}
本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可
标签: axios JavaScript
最后更新:2019年11月28日

jeremyjone

这个人很懒,什么都没留下

打赏 点赞
< 上一篇
下一篇 >

文章评论

取消回复

最新 热点 随机
最新 热点 随机
关于 *.vue 文件中使用 TypeScript 声明类型报错的解决方案 element table 加载时宽度闪烁问题 windows 无法登录便签、OneNote等应用 vue2 中 vuex 对 ts 的支持 封装一个极简的右键菜单 vue2 使用 @vue/composition-api 的一些问题
JS/Vue动态获取浏览器高度 VSCode 中 Vue 的 Template 高亮提示 美化 Windows Terminal(升级版) js的装饰符 @ 关于 *.vue 文件中使用 TypeScript 声明类型报错的解决方案 Windows Server 无法安装网卡驱动的解决方案

(っ•̀ω•́)っ✎⁾⁾ 开心每一天

COPYRIGHT © 2021 jeremyjone.com. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS

京ICP备19012859号-1

京公网安备 11010802028585号