Guzzle 6.0 使用请求下载文件 headers

Guzzle 6.0 download file using request headers

我找不到任何有关如何使用 Guzzle 6.0 下载远程文件的示例。我需要在 GET 请求中传递 headers。

我查看了完全没有帮助的文档。

我想到了这个,但它仍然没有下载文件

require_once('vendor/autoload.php');

use GuzzleHttp\Exception\GuzzleException;
use GuzzleHttp\Client;

$client = new Client();

$response = $client->request('GET', '/stream/20', [
    'headers' => [
        'Authorization: Token token' => 'df456g4fd564gfs65dg45s6fdg4dsf5g4sd65g', 
        'Cache-Control' => 'no-cache', 
        'Content-Type' => 'application/pdf'
    ],
    'sink' => 'https://example.com/path/to/file',
]);

有人使用请求 headers 成功下载过文件吗?

我觉得你搞糊涂了。

你的 '/stream/20' 是你要下载文件的地方 url。

sink 部分是您要保存图片的位置。

试试这个....

require __DIR__ . '/vendor/autoload.php';

use GuzzleHttp\Exception\GuzzleException;
use GuzzleHttp\Client;

$client = new Client();

$resource = fopen('test.pdf', 'w');

$response = $client->request('GET', 'https://example.com/path/to/file', [
    'headers' => [
        'Authorization' => 'Token token=df456g4fd564gfs65dg45s6fdg4dsf5g4sd65g', 
        'Cache-Control' => 'no-cache', 
        'Content-Type' => 'application/pdf'
    ],
    'sink' => $resource,
]);

echo 'downloaded';