Below is the code for sending data from my client server to remote server:
$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);
I am getting the $_POST data in remote server but not the $_FILES data... tried some site but no luck...
IMPORTANT NOTE: How can i pass "$_FILES" along with "$_POST" data using php curl to remote server.
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];
}