我有一个网站,我将其称为server.com,位于server1上。 website.com有一个上传文件的字段。当有人在website.com上传文件时,我不希望文件上传到server1,我希望它上传到另一台服务器server2。做这个的最好方式是什么?我可以使用php,一个shell脚本吗?
文件上传到server2后,我有一个shell脚本要在文件上执行,我最终还要弄清楚如何从server1运行。
我希望这是有道理的,先谢谢。
答案 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>