nodejs socket.io 文件传输

2014-11-23 03:09:48 +08:00
 chigco
看了相关例子,没有说明。
都是client upload 到 server。
server -> client 难道只能通过浏览器跳出的链接进行下载到本地?
不知node socket之间是否可以进行文件互相传送?
6665 次点击
所在节点    问与答
9 条回复
yyfearth
2014-11-23 04:16:58 +08:00
websockets 是双向通信 server到client当然可以了
只是为啥不直接用ajax或者直接开一个链接来下载文件呢?

用socket.io从server给client发送一个地址 然后client接到后打开这地址下载文件
这样还可以照顾到socket.io的兼容层 因为websockets不是所有浏览器都可以使用的
andyhu
2014-11-23 08:50:59 +08:00
如果不考虑兼容老版本IE的话,用html5 file api吧,参考http://mega.co.nz/
http://stackoverflow.com/questions/15994554/download-files-like-mega-co-nz
chigco
2014-11-23 10:35:08 +08:00
@yyfearth

因为是不想弹出一个确认下载的对话框。想要实现自动下载到用户指定路径。
oott123
2014-11-23 10:40:15 +08:00
@chigco 不觉得自动下载到指定路径很危险么……
想象一下,一个网页可以直接下载一个恶意程序到你的系统目录……
甚至,替换你的explorer.exe……

所以现代的浏览器不会有这种功能的……
chigco
2014-11-23 10:47:21 +08:00
@oott123

此问题,忽略吧,,不然讨论就深了。
我知道浏览器木有。只是想自己实现看行不行。
mengskysama
2014-11-23 13:43:02 +08:00
浏览器不支持你就不能实现。
typcn
2014-11-23 13:58:10 +08:00
base64 编码数据流传回,接受完毕之后,下载data: uri
shiny
2014-11-23 15:28:44 +08:00
这个脑洞开得太大了
sanddudu
2014-11-23 17:48:11 +08:00
mega 有这样的黑科技,在线显示下载进度,完成之后文件瞬间出现
我还不知道怎么做的,不过如果能用的话对于下载体验是个不错的提升

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/148619

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX