js如何根据地址下载文件
时间: 2023-11-17 08:52:24 浏览: 394
js根据url或数据下载文件到本地download.js
4星 · 用户满意度95%
你可以使用JavaScript中的`XMLHttpRequest`对象来下载文件。以下是一个简单的示例:
```javascript
function downloadFile(url) {
var xhr = new XMLHttpRequest();
xhr.open('GET', url, true);
xhr.responseType = 'blob';
xhr.onload = function() {
if (xhr.status === 200) {
var blob = xhr.response;
var filename = getFileNameFromResponse(xhr);
// 创建一个a标签,并设置其href属性为下载链接,以及download属性为文件名
var a = document.createElement('a');
a.href = window.URL.createObjectURL(blob);
a.download = filename;
// 模拟点击a标签来触发下载
a.click();
// 释放URL对象
window.URL.revokeObjectURL(a.href);
}
};
xhr.send();
}
function getFileNameFromResponse(xhr) {
var contentDisposition = xhr.getResponseHeader('Content-Disposition');
var filename = '';
if (contentDisposition && contentDisposition.indexOf('attachment') !== -1) {
var filenameRegex = /filename[^;=\n]*=((['"]).*?\2|[^;\n]*)/;
var matches = filenameRegex.exec(contentDisposition);
if (matches != null && matches[1]) {
filename = matches[1].replace(/['"]/g, '');
}
}
return filename;
}
```
你可以将要下载的文件的URL传递给`downloadFile`函数,它将自动开始下载该文件。请注意,由于浏览器的安全限制,该代码只能在用户与页面进行交互的情况下才能正常工作。
阅读全文