(已修复:请参见下面的评论。)
我有一个运行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标头已经发送并导致该错误。
上面的代码是正确的。