通过curl或任何其他方式将数据从服务器发送到另一个

时间:2015-12-06 14:22:19

标签: php curl remote-server

我有两台服务器。 第一个(本地)是具有脚本的服务器 第二个(远程)是仅上载文件的服务器(仅用于存储)。

现在我对如何上传文件感到困惑,我有两种方法,我不知道其中最好的一种。

方式:

  1. 首先将文件上传到本地服务器并进行全部安全保护 操作(检查文件大小,文件类型等),然后上传 再次到第二台服务器(远程服务器)。

  2. 直接将文件上传到第二台服务器(远程服务器), 并在那里进行所有检查和安全操作,然后将文件信息发送到第一个服务器(本地)以将信息存储到数据库中。

  3. 或者还有另一种方式比他们更好?
  4. 我已经尝试应用第二种方式,通过将文件直接发送到第二台服务器(远程服务器),然后一切正常后,第二台服务器(远程服务器)发送给第一台服务器(本地)的所有信息curl上传的文件。

    例如:
    以下代码存储在第二个服务器(远程服务器)的php文件中。

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, "http://localServer/script/receiveReques.php");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HEADER, false);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 2);
    curl_setopt($ch, CURLOPT_TIMEOUT, 2);
    curl_setopt($ch, CURLOPT_POST, 3);
    curl_setopt($ch, CURLOPT_POSTFIELDS, array('fileName' => 'filename.zip', 'size' => 1000, 'path'=> 'http://remoteserver.com/files/filenmae.zip'));
    curl_exec($ch);
    curl_close($ch);
    

    但问题是我不知道如何获取发送的信息。

    我的问题摘要是:

    1. 最好的方法是什么?
    2. 如何从第二台服务器(远程服务器)接收文件信息 已经由curl发送的服务器?

1 个答案:

答案 0 :(得分:3)

你有

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

您需要做的就是使用它返回的数据

$data = curl_exec($ch);

所有数据现在都在$data