前端文件下载功能如何实现
时间: 2023-10-06 20:13:15 浏览: 192
前端文件下载可以通过以下几种方式实现:
1. 使用 HTML5 的 `a` 标签的 `download` 属性。这个属性可以指定要下载的文件名,并且会自动下载链接所指向的文件。例如:`<a href="文件路径" download="文件名">下载</a>`
2. 使用 JavaScript 的 `XMLHttpRequest` 对象进行文件下载。通过 `XMLHttpRequest` 对象发送 GET 请求,服务器返回文件时设置响应头的 `Content-Disposition` 属性为 attachment,浏览器会自动下载文件。例如:
```javascript
var xhr = new XMLHttpRequest();
xhr.open('GET', '文件路径', true);
xhr.responseType = 'blob';
xhr.onload = function () {
if (xhr.status === 200) {
var blob = xhr.response;
var a = document.createElement('a');
a.style.display = 'none';
document.body.appendChild(a);
var url = window.URL.createObjectURL(blob);
a.href = url;
a.download = '文件名';
a.click();
window.URL.revokeObjectURL(url);
}
};
xhr.send();
```
3. 使用浏览器的 `download` 属性进行文件下载。通过创建一个 `Blob` 对象,并将其传递给 `URL.createObjectURL()` 方法来创建一个 URL 对象,然后使用 `location.href` 或 `window.open()` 打开 URL 对象来下载文件。例如:
```javascript
var blob = new Blob([file], { type: 'application/octet-stream' });
var url = window.URL.createObjectURL(blob);
var a = document.createElement('a');
a.href = url;
a.download = '文件名';
a.click();
window.URL.revokeObjectURL(url);
```
阅读全文