PHP上传其他服务器的字段目标

时间:2011-08-08 15:52:28

标签: php shell

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

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

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

2 个答案:

答案 0 :(得分:2)

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

有关详细信息,请参阅CURL PHP send image

- 更新 -

对于SSH连接,您需要安装其他库以允许php进行SSH连接。可以找到一个优秀的教程here

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

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

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

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

答案 1 :(得分:0)

你不能把脚本放在服务器2上处理上传吗?

您可以将HTML页面包含为服务器1提供的表单,但调用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脚本现在可以处理输入。

当然,这只有在连接了server2才能从互联网连接的情况下才能使用,否则你必须在服务器1上使用某种shell脚本,以便在上传到服务器1时将内部网络上的文件移动。 / p>