使用 XMLHttpRequest 下载文件的实现

83 阅读1分钟

在 Web 开发中,经常需要从服务器下载文件,例如文档、图片或其他类型的资源。通过使用 XMLHttpRequest 对象,我们可以轻松地发起文件下载请求,并处理响应。本文将介绍如何实现一个名为 downloadFile 的函数,该函数能够从指定的路径下载文件并保存为指定的文件名。

export function downloadFile(filePath, fileName) {
  let ajax = new XMLHttpRequest();
  ajax.open("GET", filePath, true);
  ajax.setRequestHeader("Cache-Control", "no-cache");
  ajax.responseType = "blob";
  ajax.onload = (e) => {
    if (ajax.status === 200) {
      let res = e.target.response;
      let blob = new Blob([res]);
      let aLink = document.createElement("a");
      aLink.download = fileName; // 下载文件的名字
      aLink.href = URL.createObjectURL(blob);
      aLink.click();
      // 释放内存
      URL.revokeObjectURL(aLink.href);
    }
  };
  ajax.send();
}