【问题标题】:PHP upload field destination of other server其他服务器的PHP上传字段目的地
【发布时间】:2011-08-11 00:21:49
【问题描述】:

我有一个位于 server1 上的网站,名为 website.com。 website.com 有一个上传文件的字段。当有人在 website.com 上上传文件时,我不希望文件上传到 server1,我希望它上传到另一台服务器 server2。做这个的最好方式是什么?我可以使用 php,一个 shell 脚本来做到这一点吗?

文件上传到 server2 后,我有一个 shell 脚本要在文件上执行,我最终还必须弄清楚如何从 server1 运行。

我希望这是有道理的,在此先感谢。

【问题讨论】:

  • 可以让上传表单指向 server2 吗?
  • 我认为最好的解决方案是将文件临时上传到 server1,然后 server1 将其发送到 server2。之后 server2 对该文件进行处理。可以通过多种方式在服务器之间传输文件。
  • 这些不同的方法是什么? server2 无法通过互联网访问,我只能通过 SSH 连接到它。
  • @Corey:您可以通过 ssh 使用 sshfs (fuse.sourceforge.net/sshfs.html) 将远程目录从 server2 挂载到 server1 并将文件存储在那里。
  • 但是如何使用 PHP 或 shell 脚本自动执行安装过程。

标签: php shell


【解决方案1】:

另一种可能的方法是将此文件上传到您的 website.com 站点并使用 CURL 将图像发送到另一台服务器。完成后,您可以再次删除图像。

请参阅CURL PHP send image 了解更多信息。

-- 更新--

对于 SSH 连接,您需要安装额外的库以允许 php 进行 SSH 连接。一个很好的教程可以找到here

-- 更新 2 -- 这个问题引起了我的兴趣,所以我扩大了我的研究。 Sourceforge 上似乎有another PHP Library phpseclib。在page 5 上的documentation 中有一些关于它如何工作的信息。

使其工作的唯一好方法是将图像读取为二进制文件,并将其作为文本发送到另一台服务器并将其写入文件,从而从原始源创建图像。 还将图像放置在接受来自您的 website1 域的调用的公用文件夹中,这样您还可以防止热链接您的图像并节省大量数据。

我还遇到了this 寻求有关 phpseclib 的帮助。

最后我不会选择这样的解决方案。我会将您的网站从 server1 交换到 server2,只是为了将所有内容保存在一个地方。

【讨论】:

  • 我认为我不能使用 CURL,因为就像我说的,sever2 不能通过互联网访问。我必须通过 SSH 访问它
  • 更新看起来像我想要的。看起来很有希望,谢谢
【解决方案2】:

您不能将脚本用于处理服务器 2 上的上传吗?

您可以为服务器 1 提供带有表单的 HTML 页面,但调用 PHP 从服务器 2 上传。

更新 比如……

服务器 1 有一个文件 index.php,其格式为:

<form action='http://server2.com/some_directory/uploader.php' method='POST'>
 .... Some form code
</form>

index.php 上的表单通过 URL 指向服务器 2 上的 PHP 脚本。该 PHP 脚本现在可以处理输入。

当然,这只有在服务器 2 可以从互联网访问时才有效,否则,当文件上传到服务器 1 时,您将不得不在服务器 1 上使用某种 shell 脚本来移动内部网络上的文件。

【讨论】:

  • 好的,我想我明白你在说什么了。我如何在不同的服务器上调用 php 函数?
  • 据我所知 server2 没有连接到互联网上。我正在为我正在处理的项目提供 server2,因为它有很多空间,但据我所知,连接到它的唯一方法是通过 SSH
  • 好的,那么您可能需要查看某种“后端”实现。现在,这取决于您是否需要实时访问上传内容,以及如何进行。如果不是,那么我可能会建议使用 CRON 计划的作业来 FTP 他们以服务器 2。
  • 我感觉这并不容易:/ 网站当前的工作方式是上传一个文件,然后我使用我编写的 shell 脚本对其进行一些分析并显示输出。问题,这就是我需要服务器 2 的原因,是因为 website.com 实际上位于服务器 1 上的虚拟机上。虚拟机只有 20GB,这就是为什么我需要 500GB 的 server2。我正在尝试更改所有内容,而不是将其上传到本地 server1,而是转到具有更多空间的 server2。
猜你喜欢
  • 1970-01-01
  • 2012-01-28
  • 1970-01-01
  • 2012-02-19
  • 1970-01-01
  • 2014-05-19
  • 1970-01-01
  • 2021-11-12
  • 2017-11-18
相关资源
最近更新 更多