Php 如何将zip发送到另一台服务器

Php 如何将zip发送到另一台服务器,php,curl,file-upload,Php,Curl,File Upload,我在我的网站上有一个表格,要求用户上传一个压缩文件并填写该文件的信息。我将信息发送到一个数据库,现在我需要获取该文件并将其移动到另一台服务器以将其存储在一个目录中 我目前正在使用cURL将文件传输到服务器2 $ch = curl_init(); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, array('file' => $file)); curl_setopt($ch, CURLOPT

我在我的网站上有一个表格,要求用户上传一个压缩文件并填写该文件的信息。我将信息发送到一个数据库,现在我需要获取该文件并将其移动到另一台服务器以将其存储在一个目录中

我目前正在使用cURL将文件传输到服务器2

$ch = curl_init();
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, array('file' => $file));
curl_setopt($ch, CURLOPT_URL, "http://$server/upload.php");
curl_exec($ch);
curl_close($ch);
它没有发送文件。它发送的是服务器1上的临时路径,这不是我想要的。我以前从未做过这样的事,所以我完全迷路了

我需要做的是:

  • 将.zip文件发送到服务器2
  • 解压缩服务器2上的文件并将内容移动到
    /home/uploads/
  • 这两台服务器都是linux centos,我正在使用Windows操作本地主机

    对于测试,在
    upload.php
    中,我所做的只是检测请求是否是POST,然后将其转储到$\u POST上,以查看哪些数据可用,并将其写入测试文本文件

    if($_SERVER['REQUEST_METHOD'] === 'POST') {
    
        ob_start();
    
            var_dump($_POST);
    
        $data = ob_get_clean();
    
        $fp = fopen("test.txt", "w");
        fwrite($fp, $data);
        fclose($fp);  
    
    } else {
    
        echo 'You should not be here';
    
    }
    

    我还可以看到安全风险,因为任何人都可以将数据上传到该文件。任何帮助都将不胜感激。

    使用FTP是一种更好的方式,请看我知道,但是这些服务器使用SSH密钥,这将很难做到。我认为PHP不需要SSH来使用FTP。。。还有,我不支持它,所以。。。但是只要尝试一下,至少你会被修复:p PS:如果你使用SFTP,那么只需看看
    $\u文件
    不包含任何实际上传的数据。它只包含有关上传的数据。如果您想发送实际的文件,那么您必须在curl中进行文件上传。oldschoold:
    curl\u setopt($ch,CURLOPT\u POSTFIELDS,array('@file'=>$file)
    (the
    @
    是关键的),对于PHP5.5+,使用
    @file
    上的转储文件
    $\u POST
    返回
    数组(1){[“@file”=>字符串(23)“C:\wamp\tmp\phpA173.tmp”