我有两个服务器。第一个(本地)是拥有脚本的服务器
第二个(远程)是只上传文件(仅用于存储)的服务器。
现在我对如何上传文件感到困惑,我有两种方法,我不知道其中最好的一种。
方式:
-
首先将文件上传到本地服务器,并确保所有安全操作(检查文件大小、文件类型等),然后上传再次发送到第二服务器(远程服务器)。
-
将文件直接上传到第二服务器(远程服务器),并在其中进行所有检查和安全操作,然后将文件信息发送到第一个服务器(本地),以将信息存储到数据库中。
- 或者还有其他方法比他们更好
我尝试了应用第二种方式,将文件直接发送到第二服务器(远程服务器),然后在一切正常后,第二服务器通过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);
但问题是我不知道如何获得发送的信息。
我的问题摘要是:
- 最好的方法是什么
- 如何从第二台服务器接收文件信息(远程服务器)
您有
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
你所需要做的就是使用它返回的数据
$data = curl_exec($ch);
所有数据现在都在$data
中