Php 上传带有curl的曲目,echonest POST发行带有本地文件

Php 上传带有curl的曲目,echonest POST发行带有本地文件,php,curl,http-post,echonest,Php,Curl,Http Post,Echonest,我试图通过echonest api上传一个文件(输入类型,名为“上传”),但我很难让curl上传正常工作 有人能告诉我正确的方向,让数据二进制和头:应用程序/八位字节流POST方法工作吗。 这是一个内容类型为“application/octetstream”的HTTP POST请求,本地文件作为请求主体,URL中的参数 curl php: $localfile = $_FILES['upload']['name']; $fp = fopen($localfile, 'r');

我试图通过echonest api上传一个文件(输入类型,名为“上传”),但我很难让curl上传正常工作

有人能告诉我正确的方向,让数据二进制和头:应用程序/八位字节流POST方法工作吗。 这是一个内容类型为“application/octetstream”的HTTP POST请求,本地文件作为请求主体,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;

问题可能与在单个带引号的字符串中使用变量有关。此外,
@
符号使用不当。试试这个

array("$localfile"=>"$localfile",'api_key'=>'xx','filetype'=>'mp3');
虽然看起来也不太对。你可能想要这个

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

问题可能与在单个带引号的字符串中使用变量有关。此外,
@
符号使用不当。试试这个

array("$localfile"=>"$localfile",'api_key'=>'xx','filetype'=>'mp3');
虽然看起来也不太对。你可能想要这个

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