【问题标题】:forcing guzzle to download the zip files强制 guzzle 下载 zip 文件
【发布时间】:2019-09-13 16:09:14
【问题描述】:

需要帮助下载 json 响应 zip 文件。 我正在使用来自远程服务器的 guzzle json 响应,它向我返回文件名和修改日期。我想将所有这些 zip 文件下载到我的本地服务器的存储文件夹中..

所以它会像这样工作 远程服务器给出 json 响应文件名 我获取文件名并创建我的链接并强制 guzzle 将这些文件下载到我的本地服务器。

这是我的代码

 ini_set('max_execution_time', '0');

    $url = "https://feeds.example.com/zips/publisher/";
    try
    {

      $client = new GuzzleHttp\Client();

        $res = $client->request('GET', $url, [
            'auth' => ['username', 'password'],

            'headers' => [
                'Accept'     => 'application/json',
                'Content-Type'     => 'application/json'
            ],



        ]);

       $responses = json_decode($res->getBody()->getContents());

       foreach ($responses->incrementalFeed as $feed)
       {
            $downloadLink = $url . $feed->name;
            $client->get($downloadLink, ['auth' => ['username', 'password']]);
            Storage::put($feed->name, $downloadLink);
       }

  }
  catch (ClientException $e) {
    echo $e->getMessage();
  }

它将所有 zip 文件下载到我的存储文件夹,但所有文件都像 1kb,空.. 但是在远程网站中,这些文件从 10mb 到 600mbs

我在这里做错了什么?

【问题讨论】:

    标签: php laravel guzzle


    【解决方案1】:

    你没有下载任何东西。 您需要再次使用 guzzle 下载文件

    例如

    $response = $client->get($downloadLink);
    Storage::put($feed->name, $response->getBody());
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-31
      • 2023-04-09
      • 2012-04-26
      • 1970-01-01
      • 2019-12-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多