2016-01-21 75 views
6

我想用Guzzle下載一個大文件並想跟蹤進度。我不知道是否必須通過流或使用RequestMediator。Gu 6 6下載進度

我測試下面的代碼。

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

暗示將不勝感激。

回答

12

雖然在文檔中未提及,但可以使用「進度」請求選項。

參考文獻可以找到here

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

完美,謝謝! – Laoneo