铬有“;无法加载PDF文档”;在PHP中从url调用pdf时出现错误消息。但在Firefox和Edge中也可以使用

铬有“;无法加载PDF文档”;在PHP中从url调用pdf时出现错误消息。但在Firefox和Edge中也可以使用,php,google-chrome,pdf,Php,Google Chrome,Pdf,我想使用PHP从浏览器中的REST服务的URL打开一个pdf文件,但该文件没有打开。Chrome说,“无法加载PDF文档”。但在Firefox和Edge中工作正常 这是我的print.php <?php header("Pragma: public"); // required header('Content-Type: application/pdf'); header('Accept-Ranges: bytes'); header('Content-Transfer-Encoding

我想使用PHP从浏览器中的REST服务的URL打开一个pdf文件,但该文件没有打开。Chrome说,“无法加载PDF文档”。但在Firefox和Edge中工作正常

这是我的print.php

<?php

header("Pragma: public"); // required
header('Content-Type: application/pdf');
header('Accept-Ranges: bytes');
header('Content-Transfer-Encoding: binary');

$data = ...; //definition of my json object

$baseUrl = 'http://www.website.com:8080/report/api/something/';
$newUrl = $baseUrl .'path';

$additional_headers = array(
    'Content-Type: application/json',
);

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, $additional_headers);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

$server_output = curl_exec($ch);

echo  $server_output;

?>

更新


我注意到,当我的报告中的记录数量超过一定数量时,就会发生这种情况(总是在chrome中,其他浏览器工作得很好)。但是我还是不能解决这个问题。

最后,我找到了解决办法

首先,我更改了CURL调用,将
CURLOPT_RETURNTRANSFER
更改为
true
,然后使用调用我的PHP页面,我注意到结果的内容如下所示:

<br />
<b>Deprecated</b>:  Automatically populating $HTTP_RAW_POST_DATA is deprecated and will be removed in a future version. To avoid this warning set 'always_populate_raw_post_data' to '-1' in php.ini and use the php://input stream instead. in
<b>Unknown</b> on line
<b>0</b>
<br />
<br />
<b>Warning</b>:  Cannot modify header information - headers already sent in
<b>Unknown</b> on line
<b>0</b>
<br />
<br />
<b>Warning</b>:  session_start(): Cannot send session cookie - headers already sent in
<b>C:\xampp\htdocs\project\print.php</b> on line
<b>4</b>
<br />
<br />
<b>Warning</b>:  session_start(): Cannot send session cache limiter - headers already sent in
<b>C:\xampp\htdocs\project\print.php</b> on line
<b>4</b>
<br />
<br />
<b>Warning</b>:  Cannot modify header information - headers already sent in
<b>C:\xampp\htdocs\project\print.php</b> on line
<b>5</b>
<br />
<br />
<b>Warning</b>:  Creating default object from empty value in
<b>C:\xampp\htdocs\project\print.php</b> on line
<b>24</b>
<br />
<br />
<b>Warning</b>:  Creating default object from empty value in
<b>C:\xampp\htdocs\project\print.php</b> on line
<b>77</b>
<br />
<br />
<b>Warning</b>:  Creating default object from empty value in
<b>C:\xampp\htdocs\project\print.php</b> on line
<b>77</b>
<br />
<br />
<b>Warning</b>:  Creating default object from empty value in
<b>C:\xampp\htdocs\project\print.php</b> on line
<b>77</b>
<br />
<br />
<b>Warning</b>:  Creating default object from empty value in
<b>C:\xampp\htdocs\project\print.php</b> on line
<b>77</b>
<br />
<br />
<b>Warning</b>:  Creating default object from empty value in
<b>C:\xampp\htdocs\project\print.php</b> on line
<b>77</b>
<br />
<br />
<b>Warning</b>:  Creating default object from empty value in
<b>C:\xampp\htdocs\project\print.php</b> on line
<b>77</b>
<br />
<br />
<b>Warning</b>:  Creating default object from empty value in
<b>C:\xampp\htdocs\project\print.php</b> on line
<b>77</b>
<br />
<br />
<b>Warning</b>:  Creating default object from empty value in
<b>C:\xampp\htdocs\project\print.php</b> on line
<b>77</b>
<br />
<br />
<b>Warning</b>:  Creating default object from empty value in
<b>C:\xampp\htdocs\project\print.php</b> on line
<b>77</b>
<br />
<br />
<b>Warning</b>:  Creating default object from empty value in
<b>C:\xampp\htdocs\project\print.php</b> on line
<b>77</b>
<br />
<br />
<b>Warning</b>:  Creating default object from empty value in
<b>C:\xampp\htdocs\project\print.php</b> on line
<b>77</b>
<br />
<br />
<b>Warning</b>:  Creating default object from empty value in
<b>C:\xampp\htdocs\project\print.php</b> on line
<b>77</b>
<br />
%PDF-1.5
%����
3 0 obj<
</ColorSpace/DeviceRGB/Subtype/Image/Height 515/Filter/DCTDecode/Type/XObject/Width 545/BitsPerComponent 8/Length 47996>>stream
���� ........................................... 
然后,当我再次执行我的PHP页面时,如果只有PDF文件,页面的内容

%PDF-1.5
%����
3 0 obj<
</ColorSpace/DeviceRGB/Subtype/Image/Height 515/Filter/DCTDecode/Type/XObject/Width 545/BitsPerComponent 8/Length 47996>>stream
���� ........................................... 
%PDF-1.5
%����
30 obj<
>溪流
���� ........................................... 

此操作的目的是向其他人展示如何查找问题。不是最好的做法。我知道我的建议不是最好的解决方案,也是最糟糕的做法。
%PDF-1.5
%����
3 0 obj<
</ColorSpace/DeviceRGB/Subtype/Image/Height 515/Filter/DCTDecode/Type/XObject/Width 545/BitsPerComponent 8/Length 47996>>stream
���� ...........................................