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

208
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Подскажите пожалуйста, как тогда можно реализовать, что бы после...

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

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

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

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

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

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

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

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

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

160