我有报告生成在PHP/FPDF/FPDF2File通常显示在浏览器窗口
注意:
- 参数被传递给生成报告POST的PHP。
- 文件正在通过具有有效证书的HTTPS独占访问。
- web服务器能够记录所有错误,并且错误正在正确地记录在日志中,但没有与FPDF/PHP相关的错误被记录。(即我清理了错误日志,运行报告,日志中没有出现错误……故意造成错误,并被记录)。因此,似乎没有语法错误。
- 使用的内容类型是:header ('Content-type: application/pdf');该问题发生在装有谷歌Chrome浏览器的Windows电脑上(在多台机器上测试)。
- PDF渲染插件浏览器的所有按钮(保存、打印、旋转、缩放等)工作正常。除了Google Chrome中的保存按钮(在其他浏览器中正常工作)。
当尝试保存已打开并在Google Chrome上显示的PDF时,出现以下错误:
网络错误
因此,你不能保存PDF,除非你去打印和打印PDF,或者打印PDF的PDF,这没有多大意义。
有人能告诉如何解决这个错误吗?
非常感谢!
是否设置了Cache-Control header的no-store属性?
我不知道为什么,但对我来说,改变
后它工作了 header("Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: no-cache, must-revalidate, post-check=0, pre-check=0");
@Amryn的回答实际上对我有效。这是我完整的标题设置:
header('Cache-Control: no-cache, must-revalidate, post-check=0, pre-check=0');
header('Content-type: application/pdf');
header('Content-Disposition: inline; filename="relatorio-clientes.pdf"');
header('Content-Transfer-Encoding: binary');
header('Content-Length: ' . strlen(ltrim($content)));
header('Accept-Ranges: ' . strlen(ltrim($content)));
echo $content;
如果您使用打印选项并另存为PDF,则不会发生网络错误(解决方法)。
这对我来说很有效:
删除php关闭标签?>
后的空格等所有字符
在这里找到:https://stackoverflow.com/a/13463631/2267379
简单的解决方案:不要做
返回pdf→美元输出(' medienpass.pdf ', ' D ');
中的getPdf()函数,因为输出将被封装在大量的HTML代码。
只向客户端返回pdf:
死(pdf→美元输出(' medienpass.pdf ', ' D '));