如何使用 Php Curl 将 $_FILES 与少量 $_POST 数据一起传递给远程服务器


How to pass $_FILES to remote server along with few $_POST data using Php Curl

下面是将数据从客户端服务器发送到远程服务器的代码:

$fields_string = "";
        $fields = array();
        $file_name_with_full_path = realpath('./sample.jpeg');
        $url = 'http://192.168.1.xx/proj_v6/upload_amax_data';
        if (isset($_FILES['files']['tmp_name'][0])) {
            $filename  = $_FILES['files']['tmp_name'][0];
            $handle    = fopen($filename, "r");
            $data      = fread($handle, filesize($filename));
            $fields = array(
                          'file' =>
          '@'            . $_FILES['files']['tmp_name'][0]
          . ';filename=' . $_FILES['files']['name'][0]
          . ';type='     . $_FILES['files']['type'][0]
                        );
        }
        $fields = array(
            'r_token' => urlencode(REMOTE_AUTH_TOKEN),
            'lname' => urlencode('$lname'),
            'fname' => urlencode('$first_name'),
            'title' => urlencode('$title'),
            'company' => urlencode('$institution'),
            'age' => urlencode('$age'),
            'email' => urlencode('$email'),
            'phone' => urlencode('$phone')
        );
        foreach ($fields as $key => $value) {
            $fields_string .= $key . '=' . $value . '&';
        }
        rtrim($fields_string, '&');
        //open connection
        $ch = curl_init();
        //set the url, number of POST vars, POST data
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_POST, count($fields));
        curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string);
        //execute post
        $result = curl_exec($ch);
        //close connection
        curl_close($ch);

我在远程服务器中获取了 _POST 美元的数据,但没有获得 _FILES 美元的数据......尝试了一些网站,但没有运气...

重要说明:如何使用 php curl 将"$_FILES"和"$_POST"数据传递到远程服务器。

if (isset($_FILES['files']['tmp_name'][0])) {
            $filename  = $_FILES['files']['tmp_name'][0];
            $handle    = fopen($filename, "r");
            $data      = fread($handle, filesize($filename));
            $fields['image'] = '@'.$_FILES['files']['tmp_name'][0]
          . ';filename=' . $_FILES['files']['name'][0]
          . ';type='     . $_FILES['files']['type'][0];
        }