【发布时间】:2017-11-15 09:12:50
【问题描述】:
是否可以在 WordPress 中使用 WP_REST_Response 返回文档(生成的 PDF、CSV)?
到目前为止,我一直在使用 register_rest_resource 注册自定义端点,但如果我尝试返回文件(例如,使用 PHP fpassthru($f) 或 readfile($f) 我会收到“标头已发送”错误。
换句话说:如何使用 Wordpress REST API 返回文件?
感谢任何帮助!
谢谢
【问题讨论】:
-
“返回”给谁? API 返回 JSON。因此,如果您的问题基本上是“我可以将二进制数据放入 JSON 中吗”,那么答案是肯定的。你是否应该这样做或者在什么情况下它可能有意义,将是一个不同的问题。
-
我同意 API 应该将 JSON 返回给 JS 被调用者。但是,如果我的 API 将(例如)订单 ID 作为输入并返回该订单发票的 PDF 文件,该怎么办?
-
那么我会认为这是一个设计缺陷:p 大型二进制资产首先不应该通过这样的 API 传递。您的 API 应返回 PDF 的 URL,然后客户端可以使用该 URL 下载它。
-
是的,但这需要两个调用:第一个调用生成 PDF 并将其保存在服务器磁盘上,第二个调用实际下载存储在磁盘上的 PDF。
-
网址不必指向“静态”数据或文件。
标签: php wordpress rest wordpress-rest-api