[英]Post Json and audio file with php (curl) to a laravel API
我正在使用下面的代碼將 json 和音頻文件發布到我在 laravel 上構建的 api
$endPoint = 'http://localhost:9000/api/audio/send';
$apiKey = 'anvx7P7ackndaD8MvXlufSaG4uJ901raoWIwMPGZ93dkH';
$url = $endPoint . '?key=' . $apiKey;
$curlFile = new \CURLFile('/Users/desktop/myapp/public/Voice/aaaah.wav');
$data = array("request" =>
json_encode(array("test" => "First audio ",'recipient' =>['442342342', '35345242'])) . ";
type=application/json","file" => "@d8696c304d09eb1.wav;type=audio/wav");
$ch = curl_init();
$headers = array();
$headers[] = "Content-Type: application/json";
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$result = curl_exec($ch);
$result = json_decode($result, TRUE);
curl_close($ch);
return $result;
當我將我的 json 提交給 api 時,它從 api 返回 null。 這意味着沒有數據被發布到我的 api。 請問我如何將我的json和音頻文件發布到laravel api有什么錯誤嗎?
PS:PHP初學者
您不能以 JSON 格式發布文件!。
需要一個普通的 POST 請求(從<form>
元素生成的請求)來發布文件。
如果您必須使用 JSON 發送文件,請對其進行 base64_encode 並發送。 但在另一端,服務器需要先對它進行 base64_decode。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.