21xrx.com
2024-09-17 04:26:19 Tuesday
登录
文章检索 我的文章 写文章
JavaScript如何实现文件下载功能
2023-06-14 23:29:22 深夜i     --     --
JavaScript 文件下载 链接 Ajax Blob

JavaScript可以通过几种方式实现文件下载功能,包括通过链接、通过Ajax、通过blob等方式。本文将分别介绍这几种方式的实现方法,并提供相应的代码案例。

一、通过链接下载文件

在HTML中,使用标签可以创建一个链接,通过设置其href属性为文件的下载链接,当用户点击该链接时,文件将被下载到本地。

代码示例:


下载文件

二、通过Ajax下载文件

通过Ajax下载文件的核心是创建一个XMLHttpRequest对象,并通过其responseType属性设置响应类型为blob。通过发送GET请求获取文件数据,并将其转化为二进制数据,最终通过创建Blob对象进行下载。

代码示例:


function downloadFile(url) {

 var xhr = new XMLHttpRequest();

 xhr.open('GET', url, true);

 xhr.responseType = 'blob';

 xhr.onload = function () {

  if (xhr.status === 200) {

   var blob = new Blob([xhr.response], { type: 'application/octet-stream' });

   var a = document.createElement('a');

   a.href = URL.createObjectURL(blob);

   a.download = '文件名';

   a.click();

  }

 };

 xhr.send();

}

三、通过Blob下载文件

通过Blob进行文件下载的相比较于前两种方式更为简洁。其仍然是通过创建Blob对象进行文件下载,不同的是该方式直接传递文件数据,而无需像Ajax方式需要先获取文件数据。

代码示例:


function downloadFile(data) {

 var blob = new Blob([data], { type: 'application/octet-stream' });

 var a = document.createElement('a');

 a.href = URL.createObjectURL(blob);

 a.download = '文件名';

 a.click();

}

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复