我使用FPDF从PHP生成一些PDF。它适用于小例子,但现在我遇到了问题:它返回了一些我在控制台中看到但没有文件的数据!
输出看起来喜欢 - 这不是PDF吗?
%PDF-1.4
0 obj
<</Type /Page
/Parent 1 0 R
/Resources 2 0 R
/Group <</Type /Group /S /Transparency /CS /DeviceRGB>>
......
<<
/Size 15
/Root 14 0 R
/Info 13 0 R
>>
startxref
22291
%%EOF
而且我的php很长,这是一个它的标签http://pastebin.com/ri5uAeie
我的php看起来很正确,真的很奇怪吗?
我通过我的参数抛出URL并使用$ _GET并且效果很好:)感谢您的帮助!
答案 0 :(得分:3)
你可能在某处添加了一个空白行,可能是inc/DataLib.php
。
更新#1:
根据你的回答,有两个可疑点:
Content-Type
应为application/pdf
。从理论上讲,PDF::Output()方法会为您添加(除非php_sapi_name()
返回cli
,这在网络环境中是不可能的。)
在桌面PDF阅读器中获取空白页(而不是错误)表明文档损坏的方式是读者甚至无法检测到它......或者文档实际上是空白的。
不知道#1(防火墙?代理?防病毒?)但您至少可以检查PDF源代码以查找PHP错误消息或不属于那里的内容。
更新#2:
我想我终于明白了你的问题所在。您无法使用JavaScript通过AJAX检索PDF文件。所有JavaScript都可以:
如果你直接从位置栏调用它,我怀疑你的PDF生成器就好了。
答案 1 :(得分:0)
这就是如何在没有参数的情况下调用FPDF::Output()
。它只是设置适当的标题并将PDF作为文本发送到浏览器。如果要下载文件,则需要提供Output()
文件名并将第二个参数设置为'D'