Php FPDF返回文本而不是PDF文件
我使用FPDF从PHP生成一些PDF。它对小示例非常有效,但现在我遇到了一个问题:它返回一些我在控制台中看到的数据,但没有文件 输出看起来像-它是PDF的否Php FPDF返回文本而不是PDF文件,php,pdf,fpdf,Php,Pdf,Fpdf,我使用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
%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
%PDF-1.4
0 obj
您可能在某处添加了一个空行,可能是在inc/DataLib.php
更新#1:
根据你的回答,有两点可疑:
内容类型应为application/pdf
。理论上,该方法会为您添加它(除非php\u sapi\u name()
返回cli
,这在web环境中是不可能的)
在桌面PDF阅读器中获取空白页(而不是错误)表明文档已损坏,读者甚至无法检测到它。。。或者文档实际上是空白的
不知道#1(防火墙?代理?防病毒?),但您至少可以检查PDF源代码以搜索PHP错误消息或不属于那里的内容
更新#2:
我想我终于明白你的问题所在了。不能使用JavaScript通过AJAX检索PDF文件。JavaScript所能做的就是:
操纵页面的DOM(PDF不是HTML)
用其他内容替换整个DOM页面(并且无法告诉浏览器它是什么内容类型)
如果您直接从位置栏调用PDF生成器,我怀疑它还可以。您可能在某处添加了一个空行,可能是在inc/DataLib.php
更新#1:
根据你的回答,有两点可疑:
内容类型应为application/pdf
。理论上,该方法会为您添加它(除非php\u sapi\u name()
返回cli
,这在web环境中是不可能的)
在桌面PDF阅读器中获取空白页(而不是错误)表明文档已损坏,读者甚至无法检测到它。。。或者文档实际上是空白的
不知道#1(防火墙?代理?防病毒?),但您至少可以检查PDF源代码以搜索PHP错误消息或不属于那里的内容
更新#2:
我想我终于明白你的问题所在了。不能使用JavaScript通过AJAX检索PDF文件。JavaScript所能做的就是:
操纵页面的DOM(PDF不是HTML)
用其他内容替换整个DOM页面(并且无法告诉浏览器它是什么内容类型)
如果您直接从位置栏调用PDF生成器,我怀疑它是正常的。这就是在没有参数的情况下调用FPDF::Output()
的方法。它只是设置适当的标题并将PDF作为文本发送到浏览器。如果要下载文件,需要提供带有文件名的Output()
,并将第二个参数设置为'D'
,这就是在没有参数的情况下调用FPDF::Output()
的方法。它只是设置适当的标题并将PDF作为文本发送到浏览器。如果你想下载文件,你需要提供带有文件名的Output()
,并将第二个参数设置为'D'
,我已经尝试使用$pdf->Output('test.pdf','D');但它是相同的输出…我已经尝试使用$pdf->output('test.pdf','D');但它是相同的输出…不,空白行返回错误。我这里没有错误:)谢谢你的帮助!好吧基本问题是:1)生成的内容类型是什么?2) 您的浏览器中是否有可用的PDF插件?3) 如果您将文件保存到磁盘并使用PDF阅读器手动打开它,文件是否呈现?1)Jquery帖子中的内容类型:“application/x-www-form-urlencoded”-2)是的,我使用Chromium。几天前我做了FPDF的作品。。。3) 我可以打开它,但它是空的,我也尝试在另一个选项卡中打开我的php,但没有更好的…好吧,如果我把内容类型放在application/pdf中,帖子就不起作用了。。。我使用Jquery将数据从JS发布到PHP。。。我会检查PHP错误…请随时更新问题并在那里添加详细信息。注释中的代码不可读。不管怎样,我建议你一个一个地解决问题。确保在尝试AJAX stuff之前可以正确生成PDF。不,空行返回错误。我这里没有错误:)谢谢你的帮助!好吧基本问题是:1)生成的内容类型是什么?2) 您的浏览器中是否有可用的PDF插件?3) 如果您将文件保存到磁盘并使用PDF阅读器手动打开它,文件是否呈现?1)Jquery帖子中的内容类型:“application/x-www-form-urlencoded”-2)是的,我使用Chromium。几天前我做了FPDF的作品。。。3) 我可以打开它,但它是空的,我也尝试在另一个选项卡中打开我的php,但没有更好的…好吧,如果我把内容类型放在application/pdf中,帖子就不起作用了。。。我使用Jquery将数据从JS发布到PHP。。。我会检查PHP错误…请随时更新问题并在那里添加详细信息。注释中的代码不可读。不管怎样,我建议你一个一个地解决问题。在尝试AJAX之前,请确保可以正确生成PDF。