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

标签 php json laravel pdf

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

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

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

最佳答案

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

快速代码

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

return response()->json([
    'pdf' => $pdf,
]);

然后用户可以这样使用它。

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

file_put_contents('path/to/save/my.pdf', $pdf);

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

关于php - Laravel 5.2 - 如何返回 PDF 作为 JSON 响应的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36201927/

相关文章:

laravel - HTTP/2 服务器推送 Assets 加载失败 (HTTP2_CLIENT_REFUSED_STREAM)

Laravel Eloquent 多个 has 和 where 子句

php - Laravel 中正则表达式规则的自定义验证消息?

php - 将 html 实体转换为 UTF-8,但保留现有的 UTF-8

php - 如何从推特中的oauth key 获取用户名

javascript - JavaScript 中的 DST 实现导致发送到 MVC Controller 时出现问题

laravel - Lighthouse GraphQL 将 ID 转换为字符串而不是整数?

javascript - 如何根据php中的动态值更改输入文本字段的背景颜色?

javascript - react native : "undefined is not an object" Rendering components with ListView and external dataSource

jquery - jquery如何创建临时div并删除除第一个图像之外的所有内容