如何将文件流式传输到硬盘?

时间:2014-10-22 03:11:16

标签: javascript html5 file-io

我想从服务中读取数据,在浏览器中解密,然后将其写出来。从服务中读取和解密很容易,但我怎样才能询问用户在哪里下载文件?

我找到了FileSystem和FileWriter API,但并没有广泛支持(只有Chrome,Opera和Safari)。我一直在根据Downloadify的建议调查this question,但在我开始下载之前,我似乎必须将整个文件放在内存中。除此之外,它运作良好。但是,我想将其设置为流。从服务中获取一个块,解密该块,在获取另一个块之前将该块写入磁盘。

如何将数据从javascript流式传输到磁盘?我确信这是可能的,因为Mega.co.nz以这种方式工作。我尝试过他们的代码,但无济于事。

1 个答案:

答案 0 :(得分:0)

我最终遇到了FileSaver.js,这是一个很棒的小图书馆,可以完成我想要做的事情。它提供了一个简单的saveAs(blob, filename)函数,使用保存文件对话框将内容从javascript保存到硬盘驱动器,就像用户从服务器下载内容一样,但不需要服务器。它适用于在其网站上的表中列出的相当大的文件。大多数浏览器似乎最多使用345 MB文件。作者There's a blog post对其使用情况进行了很好的细分。