【发布时间】:2015-12-14 20:09:12
【问题描述】:
我正在尝试通过 echonest api 上传文件(输入类型并命名为“upload”),但我正在努力让 curl 上传工作。
http://developer.echonest.com/docs/v4/track.html#upload
谁能指出我正确的方向来获取二进制数据和标头:application/octet-stream POST 方法工作。 这是一个 Content-Type 为“application/octet-stream”的 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;
【问题讨论】:
标签: php curl http-post echonest