使用axios下载文件

原文地址: https://www.jeremyjone.com/541/ , 转载请注明


因为下载还是挺常见的,所以用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);
      });
  });
}
发布了101 篇原创文章 · 获赞 32 · 访问量 11万+

猜你喜欢

转载自blog.csdn.net/jeremyjone/article/details/103295627
今日推荐