Intereting Posts
Путаница с идентификатором «use» при закрытии PHP Pheanstalk (клиент PHP для beanstalk) – как работают соединения? Стратегия для разработки версий с именами и без имен с одним и тем же PHP-кодом изменение действия по умолчанию для zend framework на основе контроллера Как написать функцию wordpress «is_front_page ()» в ветке кода дерева? Функция getResult call PHP / SQL, просто выберите, где получить «значение» как столбец Могут ли скрипты PHP продолжать работать, даже если пользователь закрыл браузер? Некоторые символы в CSV-файле не читаются во время PHP fgetcsv () Как проверить, поддерживает ли curl для ssl? Codeigniter отображает пустую страницу вместо сообщений об ошибках PHP Проблема изменения ключевых значений рекурсивно в массиве JSON Symfony 2 Добавить токен CSRF при использовании формы без класса Страница не найдена по запросу url в zend 2 framework application Как получить все записи, обновленная дата которых составляет менее 30 дней в php

Прогресс загрузки Gozzle 6

Я хочу загрузить большой файл с помощью Guzzle и хочу отслеживать прогресс. Я не знаю, должен ли я передавать поток или использовать RequestMediator каким-то образом.

  • Я попытался подписаться на событие curl.callback.progress, но в запросе PSR 7 нет диспетчера событий.
  • Я попробовал on_stats , но обратный вызов запускается только в конце.
  • Плагин подписчика прогресса устарел https://github.com/guzzle/progress-subscriber

Я тестирую следующий код.

$dl = 'http://archive.ubuntu.com/ubuntu/dists/wily/main/installer-amd64/current/images/netboot/mini.iso'; $client = new Client([]); $request = new GuzzleHttp\Psr7\Request('get', $dl); $promise = $this->client->sendAsync($request, [ 'sink' => '/tmp/test.bin' ]); $promise->then(function (Response $resp) use ( $fs) { echo 'Finished'; }, function (RequestException $e) { }); $promise->wait(); 

Подсказка будет оценена.

Related of "Прогресс загрузки Gozzle 6"

Хотя, не упомянутый в документации, вы можете использовать опцию «прогресс».

Ссылки на него можно найти здесь .

 $options = [ 'progress' => function ($dl_total_size, $dl_size_so_far, $ul_total_size, $ul_size_so_far) { // do something. } ];