2011-12-15 157 views
4

我需要从一个PHP页面(在其客户上传他们的文件)到另一个PHP页面另一台服务器的文件将被存储finaly上发送文件。从PHP页面将文件发送到另一个

现在为了通信我使用JSON-RPC协议;以这种方式发送文件是明智的吗?

$string = file_get_contents("uploaded_file_path"); 

字符串发送到远程服务器上,然后

file_put_contents("file_name", $recieved_string_from_remte); 

据我所知,这种方法需要两倍的时间比直接上传到第二个服务器。

感谢

[编辑]

细节:

我需要写一个服务,允许一些PHP(可能的Joomla)用户使用一个简单的API来上传文件和发送一些其他数据到我的服务器分析他们,把数据库中,并发回回应

[re edit]

我需要创建一个简单的方法,使最终用户能够做到这一点,谁将会使用这个接口上的服务器1(上传)使用PHP和停止,让远程SSH安装矿石怪有趣的东西

+0

我会使用ftp。 – 2011-12-15 19:44:01

+0

是的,我认为你需要更好的approuch,这可能是非常危险或批评。也许带来了ftp或sql。但如果你仍然需要这样做,我回答你... – 2011-12-15 19:46:50

+0

问题是,1 - 我不想添加额外的东西,2 - 远程SRV需要做一些东西白衣这个文件,并回砂一些反应,在面向对象的上下文中,所以我不想分割操作 – Zorb 2011-12-15 19:47:46

回答

1

如果我是你,我会直接将文件发送到第二台服务器,并将其文件名和/或文件名的一些散列(用于更容易检索)存储在第一台服务器上的数据库中。

使用这种方法,你可以从第一个用于操作的状态查询第二个服务器。这样,您可以将文件处理留给第二台机器,并将用户交互分配给第一台机器。

1

由于我说在我的意见,这是不推荐,但无论如何....

您可以通过字节使用套接字读取字节: http://php.net/manual/en/book.sockets.php

,或者您可以使用ftp: http://php.net/manual/en/book.ftp.php

无论如何,你的approuch中的问题是与用户导航异步或同步的过程?我真的建议你通过SQL或FTP传递给用户一个基于另一个事件(如文件观看,然后电子邮件等)或使用SQL(二进制,BLOB等)的响应

1

如果你不需要接受他们(处理等)后的文件,然后你可以将它们保存所有在一个文件夹服务器1上,并设置一个cron到该文件夹​​的内容scp将服务器2。假设您使用的是Linux服务器,所有这些都是最安全有效的方法。

欲了解更多信息,请看看http://en.wikipedia.org/wiki/Secure_copy或谷歌SCP。

1

机1上的使用SSHFS映射一个文件路径机2(使用SSH)和上传的文件保存到机器2的文件被上传之后,触发机2做加工并报告为正常。

这将允许你上传到机1台,但实际上它传输到机器2的HD,因此它可以被处理机器上更快。

这将是比任何SQL或手动文件复制解决方案更快,因为当用户上传文件的文件传输发生。

相关问题