使用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);
      });
  });
}
發佈了96 篇原創文章 · 獲贊 30 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章