【问题标题】:Uploading track with curl, echonest POST issue with local file使用 curl 上传曲目,使用本地文件的 echonest POST 问题
【发布时间】: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


    【解决方案1】:

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

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

    虽然看起来也不对。你可能想要这个..

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

    【讨论】:

      猜你喜欢
      • 2012-12-10
      • 2012-09-21
      • 2021-05-08
      • 1970-01-01
      • 1970-01-01
      • 2015-05-14
      • 2015-01-02
      • 2017-08-01
      • 2020-04-24
      相关资源
      最近更新 更多