Я использую 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?
Это то, что я использовал для публикации данных файла:
$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);