一个用户如何通过网站从另一台用户计算机下载文件?

时间:2011-05-07 18:41:02

标签: php javascript jquery mysql ruby

我想制作一个网络应用,其中一个用户在网站上打开计算机,另一个用户可以从他们的计算机上下载文件。用户必须指定他们允许从他们的计算机下载哪个文件,但是,它必须完全在这两台计算机之间。离开计算机的用户就像是试图下载它的其他用户的服务器。我不希望我自己的服务器处理所有流量。此外,这一切都必须通过网站,而不是程序。

离开计算机的人会看到一个带有状态栏的页面,其中有多少人正在下载他的文件,他可以随时按下取消按钮,以阻止人们访问他的文件。 / p>

我看到了一个名为'flash java socket'的东西......这可能会尝试完成我的任务吗?

http://www.google.com/search?q=flash+java+socket&ie=UTF-8&oe=UTF-8&hl=en&client=safari

6 个答案:

答案 0 :(得分:3)

这有很多障碍:

  1. 网页无法接受传入连接
  2. 浏览器不允许您访问文件系统(传统上)(
  3. 大多数人在路由器后面使用NAT,因此您需要映射端口来访问计算机。
  4. IP地址发生变化,比其他地址更多。
  5. 还有一些可能有用的解决方法:

    1. Flash和Java可以访问文件系统。
    2. 在网页上运行有限度的flash / java可以通过互联网发送文件(跨站点限制)
    3. Java applets 可能能够监控他们所在计算机的外部IP地址,并将通知推送回服务器。
    4. DynDNS等服务可以为动态IP提供静态地址。
    5. 像WebEx这样的Web屏幕共享应用程序使用Java来共享屏幕,因此您可能真的能够使用Java Applet完成所需的操作。使用直接的HTML / JavaScript,你会失去运气。

答案 1 :(得分:2)

您必须有效地将客户端的计算机转变为Web服务器才能实现这一目标。它必须有一个可公开访问的IP地址,您的服务器将记录该IP地址并将其提供给第二个客户端的计算机以直接查询。

答案 2 :(得分:1)

如果您不想处理自己服务器上的任何流量,那么仅通过浏览器就不可能在用户计算机上运行程序来处理文件传输。

答案 3 :(得分:1)

从技术上讲,这是可能的。虽然您将更多地使用您的网站作为“连接用户”的地方,而不是显示文件。您需要以下内容:

用户必须:

  • 有一个静态IP或DNS。
  • 能够安全地将这些ID提供给用户,以便彼此下载文件而不会受到入侵。
  • 为您提供可供下载的文件列表(或让您抓取其目录)。

最后,你最终只得到一件事:“bitTorrent”。

这已经存在。

答案 4 :(得分:0)

您必须在拥有这些文件的计算机上安装Web服务器(以及可选的ftp服务器),并使其ips可以公开访问。

仅对于Internet Explorer,您可以安装(开发?)ActiveX来读取您的计算机文件,但您的计算机需要高权限。

如果您不允许安装任何内容,简短的回答是不,您不能

答案 5 :(得分:0)

我知道您没有将其包含在您的代码中,但如果相关计算机安装了Python,您可以使用以下命令提供当前目录树:

python -m SimpleHTTPServer

这将使目录在http://$HOSTNAME:8000/

上可用