Javascript 文件下载

  • 方式一
function download(url:string){
	fetch(url).then(res => res.blob().then(blob => {
      const a = document.createElement('a');
      const url = window.URL.createObjectURL(blob);   // 获取 blob 本地文件连接 (blob 为纯二进制对象,不能够直接保存到磁盘上)
      const filename = res.headers.get('Content-Disposition');
      a.href = url;
      a.download = filename ?? '';
      a.click();
      window.URL.revokeObjectURL(url);
  }
}
  • 方式二

XMLHttpRequest 方式可以轻松获取下载进度

function download(url: string, fileName: string) {
  const xhr = new XMLHttpRequest();
  xhr.open('GET', url, true);
  xhr.responseType = 'blob';
  xhr.onload = () => {
    //会创建一个 DOMString,其中包含一个表示参数中给出的对象的URL。这个 URL 的生命周期和创建它的窗口中的 document 绑定。这个新的URL 对象表示指定的 File 对象或 Blob 对象。
    const url = window.URL.createObjectURL(xhr.response);
    const a = document.createElement('a');

    a.href = url;
    a.download = fileName;
    a.click();
  };
  xhr.send();
}
最近修改时间:2024-08-14 06:54:07