在浏览器上下载fetch返回的ReadableStream,可以通过以下步骤实现:
下面是一个示例代码:
fetch('your_url')
.then(response => {
if (!response.body) {
throw new Error('ReadableStream not supported');
}
const contentDisposition = response.headers.get('Content-Disposition');
const filename = getFilenameFromContentDisposition(contentDisposition); // 从Content-Disposition中获取文件名
const readableStream = response.body;
const writableStream = createWritableStream(filename); // 创建可写流,用于保存下载的文件
return readableStream.pipeTo(writableStream);
})
.then(() => {
console.log('下载完成');
})
.catch(error => {
console.error('下载失败:', error);
});
在上述示例代码中,your_url
是要下载的文件的URL。getFilenameFromContentDisposition
函数用于从Content-Disposition头部中解析出文件名。createWritableStream
函数用于创建一个可写流,用于保存下载的文件。
请注意,上述代码中的getFilenameFromContentDisposition
和createWritableStream
函数需要根据具体的实现进行定义。
推荐的腾讯云相关产品:腾讯云对象存储(COS)。
腾讯云对象存储(COS)是一种高可用、高可靠、强安全的云存储服务,适用于存储和处理大规模的非结构化数据,如图片、音视频、备份和恢复数据等。它提供了简单易用的API接口,可以方便地与浏览器端进行集成,实现文件的上传和下载。
了解更多关于腾讯云对象存储(COS)的信息,请访问:腾讯云对象存储(COS)产品介绍。
领取专属 10元无门槛券
手把手带您无忧上云