2016-01-21 32 views
6

6 ilerlemesini guzzle. Bir akış geçirmem mi gerekiyor yoksa RequestMediator'ı bir şekilde kullanmam mı gerekiyor bilmiyorum.Ben guzzle ile büyük bir dosya indirmek istiyorum ve ilerlemeyi izlemek istediğiniz indirmek

  • Olay curl.callback.progress aboneliği ile denedim, ancak PSR 7 İsteğinde bir olay dağıtıcı yok.
  • Ben on_stats çalıştı, ancak geri arama yalnızca sonunda ateşlenir.
  • ilerleme abone eklentisi ben aşağıdaki kodu test ediyorum https://github.com/guzzle/progress-subscriber

kullanımdan kaldırıldı.

$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(); 

bir ipucu

takdir.

cevap

12

Belgelerin içinde belirtilmemiş olsa da, "ilerleme" istek seçeneğini kullanabilirsiniz.

Bunun için referanslar here bulunabilir.

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

Mükemmel, teşekkürler! – Laoneo