Php 如何使用Guzzle将文件发送到客户端';s的网络浏览器?

Php 如何使用Guzzle将文件发送到客户端';s的网络浏览器?,php,http,guzzle,Php,Http,Guzzle,因此,我有下面的代码,打算在客户端的web浏览器上下载PDF文件。然而,尽管我在本地机器上通过一个接收器测试了文件创建,但要通过我现在打算使用的方法修改所述代码以实际输出文件,这是一项相当具有挑战性的工作。我是否缺少进行此基于浏览器的文件传输所需的一些相关信息?如果不是,这里会出什么问题 $client = new GuzzleHttp\Client(); $response = $client->request('POST', 'http://.../api/report', [

因此,我有下面的代码,打算在客户端的web浏览器上下载PDF文件。然而,尽管我在本地机器上通过一个接收器测试了文件创建,但要通过我现在打算使用的方法修改所述代码以实际输出文件,这是一项相当具有挑战性的工作。我是否缺少进行此基于浏览器的文件传输所需的一些相关信息?如果不是,这里会出什么问题

$client = new GuzzleHttp\Client();
$response = $client->request('POST', 'http://.../api/report', [
    'headers' => [
        'Content-Type' => 'application/json',
        'Content-Disposition' => 'attachment; filename="report.pdf"'
    ],
    'body' => 
    '{ 
        "template":{"name":"foobar_report"}, 
        "data" : ' . $json .
    '}'
]);

Guzzle是一个充当HTTP客户端的库。它通常用于解决与CURL相同类型的问题。这显然只是一段代码,但我看不到有任何地方可以将数据返回给客户机,这当然不需要大量使用。PHP固有地通过HTTP返回HTML。您正在执行的标题设置将使用header()函数完成。我不清楚您是否需要Guzzle,虽然您可能需要检索报表数据,但您不需要使用Guzzle将数据返回给客户端。如果您希望客户端下载PDF,Guzzle不是您要找的。您应该自己发送标题和文件内容,而不使用Guzzle。