2015-03-06 3 views
0

Я использую cURL в первый раз. Я должен отправить один файл изображения и один аудиофайл, отправленный пользователем.Как публиковать файлы с использованием cURL

Мой код cURL работает, но вместо файла изображения и аудиофайла мой код отправляет .tmp-файл.

Я googled это, но в каждом примере я нашел, что они использовали realpath файла напрямую.

Я попытался найти реальный путь к файлу, но я не нашел никакого решения. Вот мой код блока, в котором я собираю все данные в массиве, чтобы передать его Curl:

$name = $_POST['name']; 

$image = $_POST['image']['name']; 
$imagetmp = $_POST['image']['tmp_name']; 
$imagesize = $_POST['image']['size']; 
$imagepath = '@'.$imagetmp; 

$audio = $_POST['audio']['name']; 
$audiotmp = $_POST['audio']['tmp_name']; 
$audiosize = $_POST['audio']['size']; 
$audiopath = '@'.$audiotmp; 

$data = array("name" => $name, "image"=> $imagepath, "audio" => $audiopath); //array to sned data using cURL 

//my cURL code to post data 

Где я делаю неправильно? Как отправлять файлы с помощью cURL?

+0

Я действительно не понимаю. Вы пытаетесь отправить файл через cURL или путь? –

+1

http://stackoverflow.com/a/4270282/3445065 Этот парень объясняет тот же сценарий. –

+0

Улучшенное расположение и грамматика форматирования –

ответ

0

Это то, что я использовал для отправки данных файла:

$filedata = file_get_contents('file_location/filename.jpg');  
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $filedata); 
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/octet-stream')); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
$return = curl_exec($ch); 
curl_close($ch); 
Смежные вопросы