Laravel 5.2 - 如何将 PDF 作为 JSON 响应的一部分返回

Bil*_*son 2 php pdf json laravel

所以我开发了一个 API,其中一个端点是报告生成器。通常,他们发送报告的名称和其他一些变量,然后使用Laravel-Snappy弹出一个 PDF 。

我也使用JWT-Auth进行身份验证。由于我需要符合 HIPAA 标准,因此我将在每次通话时刷新令牌。对于大多数端点,这很容易,因为我只需将它添加到我的 json 响应的元数据中。

但是,对于报告,他们只返回带有标题的 PDF 以强制下载等。有没有办法让我将 PDF 数据作为 JSON 响应的一部分发送,应用程序命中此 API 将能够使用?我是否可能需要以某种方式加密它,以便它可以通过 json 响应发送?任何关于任何想法的其他想法将不胜感激。

Wad*_*der 6

从来没有亲自做这件事,但我在 API 中看到它的方式是读取文件内容,base64 编码并在 json 响应中提供它。

快速的代码

$pdf = base64_encode(file_get_contents('path/to/my.pdf'));

return response()->json([
    'pdf' => $pdf,
]);
Run Code Online (Sandbox Code Playgroud)

然后用户可以这样消费。

$pdf = base64_decode($json->pdf);

file_put_contents('path/to/save/my.pdf', $pdf);
Run Code Online (Sandbox Code Playgroud)

然后,您应该能够正常打开/读取保存的文件。