Отправка файла частями для YandexSpeechKit с помощью curl php

258
11 сентября 2018, 05:20

Как с помощью php реализовать загрузку файла для YandexSpeechKit частями?

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
$new = str_split(file_get_contents(realpath("$file_name")), 1000);
$data = "";
foreach ($new as $now){
         $data .= dechex(strlen($now))."\r\n".$now."\r\n";
}
$data .= "0\r\n\r\n";
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: audio/x-pcm;bit=16;rate=16000', "Transfer-Encoding: chunked"));
curl_setopt($curl, CURLOPT_VERBOSE, true);
$response = curl_exec($curl);

попытался сделать это кодом выше, но не получилось.

Answer 1

В итоге пришлось отказаться от curl, и использовать file_get_contents

$new = str_split(file_get_contents(realpath("$file_name")), 2000);
    $data = "";
    foreach ($new as $now){
        $data .= dechex(strlen($now))."\r\n";
        $data .= $now;
        $data .= "\r\n";
    }
    $data .= "0\r\n\r\n";
    $aHTTP = array(
        'http' =>
            array(
                'method'  => 'POST',
                'header'  => ["Content-Type: audio/x-pcm;bit=16;rate=16000", "Transfer-Encoding: chunked"],
                'content' => $data,
                'protocol_version' => 1.1,
                'follow_location' => 1
            )
    );
    $context = stream_context_create($aHTTP);
    $response = file_get_contents($url, false, $context);
READ ALSO
Curl, авторизация с переадресацией

Curl, авторизация с переадресацией

Нашел информацию что, curl не следует переадресации, если это мета теги или JSПодскажите пожалуйста, как тогда можно реализовать, что бы после...

241
phpmyadmin не отрабатывает, то 403, то 404, история

phpmyadmin не отрабатывает, то 403, то 404, история

Коллеги, развернул сайт на CentOS с помощью Virtualmin / Webmin, Доустановил в скриптах - phpmyadminНо дело наверное не в этом, это для полноты картины

259
Аналог 2gis по функционалу

Аналог 2gis по функционалу

В больших городах удобно использовать 2gis, чтобы элементарно узнать расписание, для маленьких городов такого не существуетПодскажите варианты...

211
Роутер PHP. Вызов методов

Роутер PHP. Вызов методов

Написал роутер:

215