[英]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.