こんにちは!curl コマンド (オーディオ ファイルのアップロード) があります。
curl -k -v -H "Expect: " -H "Content-Type:application/octet-stream" --data-binary '@/Path/To/File/test.wav' -X POST 'https://myapi.com?param1=xxx¶m2=yyy'
ファイルが正常にアップロードされ、読み取り可能になりました。しかし、phpスクリプトを使用した場合:
$filename = 'test.wav';
$file = '@/Path/To/File/test.wav';
$post_url = "https://someapi.com?param1=xxx¶m2=yyy";
$post_str = array("$filename" => $file);
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_URL, $post_url);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:application/octet-stream'));
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect: '));
curl_setopt($ch, CURLOPT_BINARYTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_str);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$http_body = curl_exec($ch);
var_dump($http_body);
ファイルは正常にアップロードされましたが、test.wav は有効ではありません (エラーあり)。スクリプトで何が間違っていますか?