2014-10-22 63 views
0

我想从服务中读取数据,在浏览器中解密,然后写出来。从服务中读取和解密很容易,但我怎么能问用户在哪里下载文件?如何将文件流式传输到硬盘驱动器?

我找到了FileSystem和FileWriter API,但没有得到广泛支持(只是Chrome,Opera和Safari)。我一直在寻找Downloadifythis question的推荐,但似乎我必须有整个文件在内存之前,我可以开始下载。除此之外,它效果很好。但是,我想将其设置为流。从服务中获取一块,解密该块,在获得另一个块之前将该块写入磁盘。

我怎样才能将数据从JavaScript流式传输到磁盘?我相信这是可能的,因为Mega.co.nz以这种方式工作。我尝试了解他们的代码,但无济于事。

回答

0

我终于遇到了FileSaver.js,这是一个很棒的小库,可以完成我想要做的事情。它提供了一个简单的saveAs(blob, filename)函数,用于使用保存文件对话框将内容从javascript保存到硬盘驱动器,就像用户从服务器下载某些东西(除非不需要服务器)。它适用于在其网站上的表格中列出的相当大的文件。大多数浏览器似乎可以处理至少345 MB的文件。 There's a blog post由作者很好地分解了它的用法。

相关问题