stream流下载文件 js
时间: 2024-08-11 11:01:33 浏览: 101
Stream Recorder- TS 视频流数据保存下载
在JavaScript中,使用`fetch()`或者`XMLHttpRequest`对象可以实现文件(特别是大文件)的stream式下载,避免一次性加载整个文件到内存中,提高用户体验。下面是一个简单的例子,展示如何使用`fetch` API 下载文件:
```javascript
function downloadFile(url, filename) {
const downloadLink = document.createElement('a');
downloadLink.href = url;
downloadLink.download = filename;
// 创建一个新的隐藏的不可见的窗口
const hiddenWindow = window.open('', 'hidden');
// 将链接点击事件绑定到这个隐藏窗口
hiddenWindow.onload = function() {
hiddenWindow.location.href = null; // 关闭隐藏窗口
hiddenWindow.close();
};
// 触发模拟点击操作
document.body.appendChild(downloadLink);
downloadLink.click();
// 移除已创建的下载链接
document.body.removeChild(downloadLink);
}
// 调用函数,开始下载
downloadFile('https://example.com/file.pdf', 'example.pdf');
```
这段代码首先创建一个`<a>`标签作为伪装,设置其`href`属性为目标下载文件的URL,然后模拟点击,让浏览器发起下载请求。这种方式利用了浏览器的内置功能,不需要手动读取并处理整个文件内容。
阅读全文