Python> PHP - 下载文件和文件夹覆盖

时间:2014-04-18 05:43:55

标签: php python file web download

我开发了一些python应用程序,所以我知道如何在python本地执行此操作,但我正在与一些PHP开发人员(我对PHP一无所知)合作,他们说这不能用PHP完成。这是一个想法:一个PHP驱动的远程网站,它创建/托管文件。使用网络浏览器我想从这个网站下载一系列文件夹和文件到本地机器上覆盖已经存在的同名文件/文件夹。因此,在我的浏览器中,我单击下载按钮,要求我浏览到本地或网络文件夹以下载文件夹和文件。目前我们只是下载一个包含所有这些文件和文件夹的.zip文件,我们必须解压缩并手动移动,复制粘贴等,非常混乱和繁琐。 PHP和其他一些语言必须有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

不,不可能从PHP(服务器端语言)访问客户端计算机(从浏览器)并直接操作他的文件系统,硬盘驱动器或类似的东西。这不是它的工作方式。

考虑一下,如果可以实现,我们会有严重的安全威胁,例如我们访问像somebadassdude.com这样的页面,他们有一个PHP脚本,创建无限的文件夹和文件来填补我们所有的高清......那很软。

但希望浏览器不要通过安全设计来实现这一点。

看看这个: Web Diagram

正如您在图中所看到的,浏览器和服务器通过HTTP请求和响应来相互响应。响应。它们之间没有通信,就像在客户端操作系统上运行的本地程序一样。您使用他的浏览器进行处理,并且无法命令浏览器操作客户端硬盘,如果可以发生这种情况,请查看我之前提到的安全保护程序。

为了更清楚,您的PHP脚本在您的服务器上运行,而不是在客户端计算机上运行。它仅在用户/浏览器请求服务器上的特定资源时响应,并且响应HTTP响应,并且它可以包含HTML,Json或文件(由外部程序下载或可视化),或者其他任何内容。 / p>

您的选择有限:

  • 如果是内联网,或者 本地网络,您可以在本地或本地访问该网络 远程喜欢VPN访问。你可以共享一个文件夹 网络,这样你可以使用PHP脚本或Python脚本 命令创建文件夹并将文件复制到它,而不必 下载一个zip,然后从浏览器中手动解压缩。
  • 使用Java Applet。为什么?因为Java Applet运行 在客户端,您可以访问他的计算机(如果是用户 允许它,你可以操纵(创建,删除,阅读, 等文件夹和文件)他的硬盘。所以当用户选择要下载的文件时 你激活Java Applet,然后让em向服务器请求文件 用户已标记。下载文件后,创建 或覆盖客户端计算机上的文件。
  • 在客户端计算机中创建并运行程序,不利于网页,这样您就可以获得所需的灵活性。但当然,它有其自身的复杂性。

所以IHMO我认为Java Applet可能是最适合您的解决方案:

  • 不必改变您的实际商业模式
  • 不需要大量时间投资。
  • 它是跨平台的,Java可以在大多数操作系统上运行,而Java Applet可以在最流行的浏览器中运行。

顺便说一句,我个人不喜欢Java,但它是一个工具,你必须使用正确的工具来完成工作。

干杯。