Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php FPDF返回文本而不是PDF文件_Php_Pdf_Fpdf - Fatal编程技术网

Php FPDF返回文本而不是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

我使用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
%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。