📅  最后修改于: 2023-12-03 15:31:40.105000             🧑  作者: Mango
在 Web 应用中,我们经常需要提供文件下载的功能,此时我们可以使用 JavaScript 来实现文件下载功能。本文将介绍如何使用 JavaScript 下载文件。
a
标签使用 a
标签的 download
属性来实现文件下载功能。
function downloadFile(url, fileName) {
const a = document.createElement('a');
a.href = url;
a.download = fileName;
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
};
downloadFile('http://example.com/file.pdf', 'file.pdf')
该代码将在页面中创建一个 a
标签,将下载链接和文件名分别赋值给 href
和 download
属性,然后在页面中模拟点击该标签以触发下载。
XMLHttpRequest
使用 XMLHttpRequest 对象下载文件。
function downloadFile(url, fileName) {
const xhr = new XMLHttpRequest();
xhr.open('GET', url, true);
xhr.responseType = 'blob';
xhr.onload = function() {
if (xhr.status === 200) {
const blob = xhr.response;
const url = URL.createObjectURL(blob);
const a = document.createElement('a');
a.href = url;
a.download = fileName;
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
}
};
xhr.send();
};
downloadFile('http://example.com/file.pdf', 'file.pdf')
该代码使用 XMLHttpRequest 对象发起 GET 请求,并将响应类型设置为 blob。当请求完成后,如果响应状态码为 200,则通过 createObjectURL 方法创建一个 URL 对象,将文件地址赋值给 a
标签的 href
属性,然后在页面中模拟点击该标签。
URL.revokeObjectURL(url)
方法来释放 URL 对象。介绍了使用 JavaScript 下载文件的两种方式,实现起来非常简单,只需要通过 a
标签或 XMLHttpRequest 对象即可实现文件下载,非常方便。