Как разместить файлы с помощью cURL

0

Я использую 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
    stackoverflow.com/a/4270282/3445065 этот парень объясняет тот же сценарий.
Показать ещё 1 комментарий
Теги:
curl

1 ответ

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);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню