Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 一个用户如何通过网站从另一个用户的计算机下载文件?_Php_Javascript_Jquery_Mysql_Ruby - Fatal编程技术网

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

Php 一个用户如何通过网站从另一个用户的计算机下载文件?,php,javascript,jquery,mysql,ruby,Php,Javascript,Jquery,Mysql,Ruby,我想制作一个web应用程序,其中一个用户在打开网站的情况下离开计算机,另一个用户可以从计算机上下载文件。用户必须指定允许从计算机上下载的文件,但是,该文件必须完全位于这两台计算机之间。让计算机保持开启状态的用户就像其他试图下载它的用户的服务器。我不希望我自己的服务器处理所有的流量。此外,这一切都必须通过一个网站,而不是一个程序 打开电脑的人会看到一个带有状态栏的页面,其中显示有多少人正在下载他的文件,他可以随时按下“取消”按钮,以阻止人们访问他的文件 我看到了一个叫做“flash java套接字

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

打开电脑的人会看到一个带有状态栏的页面,其中显示有多少人正在下载他的文件,他可以随时按下“取消”按钮,以阻止人们访问他的文件

我看到了一个叫做“flash java套接字”的东西。。。这能完成我的任务吗


要做到这一点,您必须有效地将客户端的计算机转变为web服务器。它必须有一个可公开访问的IP地址,您的服务器将记录该地址并将其提供给第二个客户端的计算机进行直接查询。

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

您必须安装一个web服务器(在有文件的计算机上可以选择安装ftp服务器),并使其IP可以公开访问

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


如果您不允许安装任何东西,简短的回答是:不,您不能

这方面有很多障碍:

  • 网页无法接受传入的连接
  • 浏览器不允许您访问文件系统(传统上是这样)
  • 大多数人在路由器后面使用NAT,所以你需要一个端口映射来访问计算机
  • IP地址会发生变化,有些会比另一些更频繁
  • 还有一些变通方法可能会有所帮助:

  • Flash和Java可以访问文件系统
  • 网页上运行的flash/java在一定程度上可以通过internet发送文件(跨站点限制)
  • Java小程序可以监视它们所在计算机的外部IP地址,并将通知推回到服务器
  • 像DynDNS这样的服务可以为动态ip提供静态地址

  • 像WebEx这样的Web屏幕共享应用程序使用Java来共享屏幕,所以您可能真的能够使用Java小程序完成您需要的工作。但是,使用纯HTML/JavaScript您就不走运了。

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

    用户必须:

    • 拥有静态ip或DNS
    • 能够安全地将这些id提供给人们,以便在不被入侵的情况下从彼此下载文件
    • 向您提供可供下载的文件列表(或让您对其目录进行爬网)
    最后,你只得到一件事:“bitTorrent”


    这已经存在。

    我知道您没有将其包含在标记中,但是如果所讨论的计算机安装了Python,您可以使用以下内容提供当前目录树:

    python -m SimpleHTTPServer
    

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

    上可用。您是否在谈论通过messenger进行文件共享之类的事情。我不知道是否可以远程将服务器排除在文件传输之外。web的全部要点是客户端和服务器之间的通信。如果你把你的服务器从这个等式中去掉,那么其他人的计算机不需要介入吗?这难道不需要在其他人的计算机上安装实际的程序吗?有限制的FTP和用户帐户。该死……我发现一个网站在不久前几乎完全做到了这一点,但我记不起它叫什么了。我想是用闪光灯还是别的什么?我不知道。但基本上我认为你在你的电脑上选择了一个文件,然后给你的朋友发送了一个链接,然后它建立了一个连接,它会直接把文件发送给他们。这将是困难的部分…然后你可以记录一些统计数据,如果你想。听起来更像或比网页对我来说。嗯,我理解的家伙,但让我们看看limewire,计算机是如何有点像服务器。。。它们可能是FTP魔法,或者ruby/java之美吗?我想我所说的“不在我自己的服务器上处理任何流量”的意思是,我不必购买用户可以上传到的服务器,人们可以从那里下载文件……在浏览器中保存这些文件的唯一方法就是自己将数据存储在服务器上,因此,我说如果不编写一个用户必须安装的程序,这是不可能的。像其他对等应用程序一样等等我不明白。。。比托伦特。这跟它有什么关系?那么bitTorrent。。。我明白你的意思。用户提供ip地址,其他用户可以从该ip地址下载文件。。。但是我对已经存在的bittorent感到困惑,这并没有回答问题,因为传输不会像问题所问的那样在浏览器中发生。传输将由一个他必须编写或使用第三方程序的程序来管理。实际上,它确实回答了这个问题。他所要求的是不可能的,我已经提供了最接近的解决方案。