首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >下载大文件

下载大文件
EN

Stack Overflow用户
提问于 2017-12-13 21:39:57
回答 1查看 8.4K关注 0票数 5

我有一个表示为块列表的文件,目标是下载所有块,并将其加入并保存为一个文件。

要求

  1. 它应该适用于大型文件。
  2. 应该是跨浏览器的解决方案。

我所发现的..。

  1. 使用JS阵列 是的,我们可以下载并将所有块存储在常规Javascript数组中。
    • 它是跨浏览器的解决方案
    • 但是它使用RAM,如果文件大小超过空闲内存浏览器就会崩溃.

  1. FileSaver.js
    • 部分跨浏览器
    • 有限文件大小

  1. StreamSaver.js
    • 不是跨浏览器
    • 适用于大型文件

  1. 文件系统API
    • 它是Chrome沙箱文件系统api
    • 适用于大型文件

但我还是无法达到我的目标.

如果有人有最好的解决方案的经验,我恳请在这里分享。谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-13 21:49:38

不幸的是,这里还没有真正的跨浏览器选项。

在Chrome中,您可以使用非标准的文件系统API或Blobs 如果blob很大,哪个Chrome将使用文件系统?

在火狐中,你可以使用非标准IDBMutableFile。但是,它不适用于下载API,因此您必须使用window.location将浏览器发送到blob,然后浏览器必须下载该URL (可能不是所有的文件扩展名都会下载)。您还可能需要使用美洲开发银行的持久选择来拥有大于~2GB的文件。

在其他浏览器中,Blob是您唯一真正的选择。从正面看,在浏览器上运行的操作系统可以使用分页,这可以使浏览器创建比内存更大的块。

像StreamSaver这样的基于服务工作者的选项也可能有所帮助(也许这是火狐的一个下载API替代方案),但是有(或曾经?)浏览器等待完整响应的时间限制,这意味着您可能需要下载并存储块,以便及时完成响应。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47802518

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档