Я хочу загрузить большой файл с помощью Guzzle и хочу отслеживать прогресс. Я не знаю, должен ли я передавать поток или использовать RequestMediator каким-то образом.
Я тестирую следующий код.
$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();
Подсказка будет оценена.
Хотя, не упомянутый в документации, вы можете использовать опцию «прогресс».
Ссылки на него можно найти здесь .
$options = [ 'progress' => function ($dl_total_size, $dl_size_so_far, $ul_total_size, $ul_size_so_far) { // do something. } ];