是否有任何人知道如何实现文件通过HTTP从客户端发送到客户端。这是类似的例子,但无法找到如何实现它:http://jetbytes.com/ 任何想法?从客户端发送文件到客户端通过HTTP
0
A
回答
1
猜你可能只是复制他们的行为,这是大致有以下几种。
让我们命名的交流三个部分组成:发送方(在浏览器中),服务器(以及...服务器代码),接收器(在浏览器中)。
- 发件人UI:用户选择一个文件;
- 发信人:定期(每秒这里),更新服务器称发件人是准备发送的文件。虽然服务器还没有准备好,但它只是向发件人回答“我还没有准备好”;
- Receiver获取生成的URL;
- 发件人(如前)更新服务器说,它已准备好发送的文件。这次服务器回答“我准备好了”;
- 发件人只能张贴的文件(因为它会做最简单的HTML表单)。
- 服务器中继POST数据到接收器(与相关头);
- 此操作需要一定的时间,所以下面的操作只是为了更新进度条发件人的一面。
- 发件人要求定期(每秒这里)有多少数据服务器走到这一步;服务器会回复它收到的数量以及它到期的期望值。
- 发件人更新其进度栏。
- ...
- 发件人要求服务器有多少数据走到这一步;服务器回答完成。
- 关闭三个交换部分的例程。
当然必须有改进的余地:
- 定期更新可以通过另一种技术(见http://en.wikipedia.org/wiki/Push_technology)来代替;
- 如果传输在完成之前中断,可以继续传输中断的地方;
- ...等诸多方面
为了便于实施,大部分工作将在客户端,并使用jQuery这里所描述的一切是可以实现的。在服务器上,两个目标是传输数据并回答发件人。你将不得不为自己定义一个轻量级的协议来说“我没有准备好”,“我到目前为止有N个字节”,“我已经完成”。
1
还提供的例子可与一台服务器。数据可能直接在收件人上传输,但仍然通过服务器。唯一的好处是他们不必在他们的服务器上保存千兆字节的数据。
如果您对abot的实施感到好奇,请启动Firebug并查看Network选项卡。
一旦你选择了一个文件,文件名被发送到服务器,返回的下载网址:
files1 http://files1.jetbytes.com/42621cb32af927558
然后实际调查服务器每秒的浏览器,询问是否有人已请求下载呢。一旦响应从wait 0
变为wait 1
,浏览器中的Javascript就知道下载已被请求,并将该表单与文件进行POST。
服务器端然后管中的POST数据被直接发送到下载器。关于实现我们只能猜测,但Node.js可能是一个不错的选择。
相关问题
- 1. 客户端通常发送http头
- 2. 通过WCF从客户端1到客户端2的通知
- 3. 从Google Drive下载文件并通过Google Drive python客户端将文件作为HttpResponse发送到客户端
- 4. 通过Axis RPC客户端发送CDATA
- 5. .NET SMTP客户端 - 客户端无权发送此发件人
- 6. 通过客户端
- 7. 解析迁移 - 客户端到客户端推送通知
- 8. C#Tcpclient客户端发送消息到另一个客户端
- 9. Python xmpppy客户端不发送消息到appengine xmpp客户端
- 10. Swift Http客户端不发送请求
- 11. Grails:编辑(form:multipart)文件(从客户端)并将其发送回客户端
- 12. 从服务器发送到客户端
- 13. 从客户端发送电子邮件
- 14. 从客户端发送电子邮件
- 15. 通过HTTP的HTTP客户端下载大文件
- 16. 套接字服务器 - 发送消息从客户端到客户端
- 17. C#客户端。从C#客户端发送数据到Java服务器
- 18. 发送通知消息给客户端
- 19. 使用RavenDB客户端API发送客户端证书
- 20. JAX-WS客户端|用安全头发送客户端请求
- 21. Java RMI - 将客户端存根发送给其他客户端
- 22. 客户端到客户端的连接?
- 23. 节点socket.io客户端侦听发送到其他客户端的事件
- 24. 将HTTP客户端切换到CCS(XMPP)客户端
- 25. 将Apache HTTP客户端连接到RESTlet客户端
- 26. 通过网络服务从服务器发送PDF文件到客户端
- 27. 通过web服务从服务器发送文件到客户端
- 28. Java中的RMI聊天程序 - 如何从客户端发送消息到客户端(不通过服务器)?
- 29. 使用TCP通过套接字从服务器端发送ArrayList到客户端
- 30. Smtp客户端 - 从和不发送
javascript和文件?好吧,我不这么认为! :-) – helle 2012-07-14 13:15:54
node.js或signalR的任何想法? – Reno 2012-07-14 13:18:45
https://Httprelay.io不需要额外的库,可用于文件传输。 – Jonas 2017-04-24 11:48:32