I'm using Codeigniter and trying to send a file to another server but when I use new CURLFile()
to make a file, the screen is display nothing and the file isn't sent.
Here's my code :
Testing.php
public function sendFile(){
$ch = curl_init();
$cfile = new CURLFile(base_url().'assets/upload/RAD PAPER.doc');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, array('file' => $cfile, 'filename'=>'name'));
curl_setopt($ch, CURLOPT_URL, 'http://localhost/devel/api/receive');
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: multipart/form-data'));
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLINFO_HEADER_OUT, true);
curl_exec($ch);
curl_close($ch);
}
and in the other server :
Api.php
public function receive(){
$folder = base_url().'assets/';
$path = $folder . $_FILES['file']['name'];
if(move_uploaded_file($_FILES['file']['tmp_name'], $path)) {
echo "The file ". basename( $_FILES['file']['name']). " has been uploaded";
}
echo "smthg to print";
print_r($_FILES['file']);
}
It's looks like function receive is never be called. But when I change this line :
curl_setopt($ch, CURLOPT_POSTFIELDS, array('file' => $cfile, 'filename'=>'name'));
to :
curl_setopt($ch, CURLOPT_POSTFIELDS, array('file' => 'thisisstring', 'filename'=>'name'));
return me the message 'smthg to print' in Api.php but $_FILES['file'] is undefined because it's not a file. What's wrong with my code? Do I wrong in using CURLFile? I'd try curl_file_create()
too.