通过websocket接收文件并保存/写入本地文件夹

时间:2016-07-03 04:07:44

标签: websocket

我们的应用程序完全基于websockets。我们不做任何HTTP请求 - 回复。但是,我们坚持下载文件。如果我通过websockets接收文件内容,我可以写到用户计算机上的本地文件夹吗?

如果它有所不同,我们只支持Chrome,因此如果它不适用于其他浏览器则不会出现问题。

另外,我知道我可以通过HTTP做到这一点。试图避免它并坚持使用websockets,因为整个应用程序都是如此。

提前多多感谢!

1 个答案:

答案 0 :(得分:1)

解决方案取决于文件的大小。

如果大小小于约50 MB,我会将文件的内容编码为服务器上的base64字符串,并将此字符串发送到客户端。客户端应该接收部分字符串,将它们连接到单个结果,然后存储。收到整个字符串后,将链接(标记<a>)添加到您的页面,其中属性href设置为"data:<data_type>;base64,<base64_encoded_file_content>"<data_type>是您文件的mime类型,例如“text / html”或“image / png”。通过将download属性集添加到文件名来建议文件名(对于OS X上的Chrome不起作用)。

不幸的是我没有大文件的解决方案。目前只有FileEntry API允许使用JS编写文件,但根据文档仅支持Chrome v13 +,请在此处了解更多https://developer.mozilla.org/en-US/docs/Web/API/FileEntry