JavaScript 下载文件详解91


在 JavaScript 中,我们可以使用多种方法来下载文件,包括使用 ()、、XMLHttpRequest 和 fetch() API。

使用 ()

() 方法会在新窗口或标签中打开一个 URL。我们可以使用它来下载文件,方法是在 URL 中指定文件的路径。("", "_blank");
复制代码

上面的代码会打开一个新标签页,并开始下载 文件。

使用

属性包含当前页面的 URL。我们可以使用它来下载文件,方法是将文件的 URL 分配给该属性。 = "";
复制代码

上面的代码会将当前页面重定向到 文件的 URL,从而开始下载该文件。

使用 XMLHttpRequest

XMLHttpRequest 对象可以用于向服务器发送 HTTP 请求。我们可以使用它来下载文件,方法是使用 open()、send() 和 responseType 属性。// 创建 XMLHttpRequest 对象
var xhr = new XMLHttpRequest();
// 设置请求方法和 URL
("GET", "");
// 设置响应类型为 blob
= "blob";
// 发送请求
();
// 请求完成后的处理程序
= function() {
if ( === 200) {
// 创建文件链接
var fileURL = ();
var a = ("a");
= fileURL;
= "";
// 将链接添加到文档中并单击它
(a);
();
// 移除链接
(a);
}
};
复制代码

上面的代码会向服务器发送一个 GET 请求以获取 文件。如果请求成功,它将使用 createObjectURL() 函数创建一个文件 URL,并将该 URL 分配给一个 a 元素的 href 属性。然后,该元素被添加到文档中并单击,从而开始下载文件。

使用 fetch()

fetch() API 提供了一种更现代的方法来向服务器发送 HTTP 请求。我们可以使用它来下载文件,方法是使用 .then() 方法和 responseType 选项。// 向服务器发送 GET 请求
fetch("", {
responseType: "blob"
})
.then(function(response) {
if ( === 200) {
// 创建文件链接
var fileURL = (());
var a = ("a");
= fileURL;
= "";
// 将链接添加到文档中并单击它
(a);
();
// 移除链接
(a);
}
})
.catch(function(error) {
("下载文件时出错:", error);
});
复制代码

上面的代码与使用 XMLHttpRequest 的代码类似。但是,它使用 fetch() API 来发送请求,并且使用 responseType 选项来指定所需的响应类型。

其他注意事项

在下载文件时,还有几点需要注意:* 确保服务器允许文件下载。
* 根据文件类型设置正确的 MIME 类型。
* 在开始下载之前,考虑显示进度指示器。
* 下载完成后,不要忘记释放创建的文件 URL。

2024-12-05


上一篇:如何在 JavaScript 中读取 JSON

下一篇:JavaScript 和 CSS:Web 开发的基石