Upload Files in php using REST
Try this.
index.php
<?php echo "<pre>"; print_r($_FILES); error_reporting(9); if($_REQUEST['action'] == 'submit') { $ch = curl_init(); $filePath = $_FILES['file_upl']['tmp_name']; $fileName = $_FILES['file_upl']['name']; $data = array('name' => 'Foo', 'file' => "@$filePath", 'fileName' =>$fileName); curl_setopt($ch, CURLOPT_URL, 'http://www.restServiceHost.com/file3/upload.php'); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_exec($ch); curl_close($ch); }?><form name="file_up" action="" method="POST" enctype="multipart/form-data">Upload your file here<input type="file" name="file_upl" id="file_upl"/><input type="submit" name="action" value="submit"/></form>
and upload.php in http://www.restServiceHost.com/file3
<?php echo "<pre>"; echo 'in upload.php<br/>'; print_r($_FILES); print_r($_REQUEST); move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_REQUEST["fileName"]);?>
I think you should be looking for
$_FILES['file_contents']
and not$_POST['file']
. – user1190992
php5.5+
$filePath = $_FILES['file_upl']['tmp_name'];$type=$_FILES['file_upl']['type'];$fileName = $_FILES['file_upl']['name']; $data = array('file_upl' => curl_file_create($filePath, $type, $fileName));$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'http://localhost/api/upload.php');curl_setopt($ch, CURLOPT_HTTPHEADER,array('Content-Type: multipart/form-data'));curl_setopt($ch, CURLOPT_POST, 1);curl_setopt($ch, CURLOPT_POSTFIELDS, $data);$response = curl_exec($ch);curl_close($ch);