php - PHP使用Guzzle通过PDF在浏览器中显示时不起作用
问题描述
(已修复:请参阅下面的评论。)
我有一个运行 PHP 的网站,该网站访问运行 .NET Core 的 REST 服务。REST-API 在 OAuth2 安全性之后返回 PDF。
现在我希望 PHP 页面通过内存中的 PDF。
我在做某事。像这样:
$getPdfUrl = "https://<my url>";
$response = $guzzleClient->request("GET", $getPdfUrl, array("headers" => array("Authorization" => "Bearer <access token>")));
$lengthArray = $response->getHeader('Content-Length');
$length = $lengthArray[0];
header('Content-Type: application/pdf; charset=utf-8');
header('Content-Length: '.$length);
header("Content-Disposition: inline; filename='details.pdf'");
echo $response->getBody()->getContents();
如果我使用 Content-Dispositon 作为附件,这非常有效。PDF没问题。
但是,当我内联执行此操作时,我会看到像https://i.stack.imgur.com/SQYQ4.png这样的二进制垃圾。我的目标是通过浏览器直接显示 PDF。
我想这是一个小错误,但我没有看到。
更新:感谢下面的评论。两者都是正确的。我与我自己的(已删除)评论相矛盾并同意。由于使用过的 CMS 的某些魔力,text/html 标头已被发送并导致该错误。
上面的代码是正确的。
解决方案
推荐阅读
- c# - 为 Vsto Office 插件中的 XAML 声明 xmlns:self 时出现 CS1061 错误
- python - string.isupper 和 string.islower 似乎不起作用?
- jqgrid - 在 jqgrid 中添加公式
- google-colaboratory - google colab - 端口转发
- python - 素数指示器将大量非素数指示为素数
- c++ - 成员函数指针的 std::invoke 替换失败
- python-3.x - Pandas Dataframe 在列上添加值,并在前面跳跃值
- smartcard - 如何发送 SET_UP_MENU 命令
- autodesk-forge - 多个模型坐标不匹配伪造查看器的问题
- javascript - 传单:使用 Promise 的样式