Загрузка трека с помощью curl, echonest POST проблема с локальным файлом

Я пытаюсь загрузить файл (тип ввода с именем «upload») через API-интерфейс echonest, но изо всех сил пытаюсь заставить загрузку curl работать.

http://developer.echonest.com/docs/v4/track.html#upload

Кто-нибудь может указать мне правильное направление, чтобы получить двоичный файл данных и заголовок: метод application / octet-stream POST.
Это HTTP-запрос POST с Content-Type «application / octet-stream», с локальным файлом в качестве тела запроса и параметрами в URL.

curl php:

$localfile = $_FILES['upload']['name'];
$fp         = fopen($localfile, 'r');
$post       = array('$localfile'=>'@$localfile','api_key'=>'xx','filetype'=>'mp3');
$ch         = curl_init();

curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true); // --data-binary
curl_setopt($ch, CURLOPT_URL, 'http://developer.echonest.com/api/v4/track/upload');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_HTTPHEADER, 'Content-type: application/octet-stream');

$response   = curl_exec($ch);
$result     = json_decode($response,true);
$id         = $result['response']['track']['id'];

curl_close($ch);
fclose($fp);

echo $id;

1

Решение

Возможно, проблема связана с использованием переменных внутри строки в одинарных кавычках. Кроме того, неправильное использование @ условное обозначение. Попробуй это…

array("$localfile"=>"$localfile",'api_key'=>'xx','filetype'=>'mp3');

Хотя это тоже не выглядит правильным. Вы, вероятно, хотите этого ..

array("localfile"=>"$localfile",'api_key'=>'xx','filetype'=>'mp3');
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]