簡體   English   中英

FPDF向我返回文本而不是PDF文件

[英]FPDF return me text instead of PDF File

我使用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很長,這是它的pastebin http://pastebin.com/ri5uAeie

我的PHP看起來正確,真的很奇怪嗎?

更新

我通過參數拋出URL並帶有$ _GET,它很好用:)謝謝您的幫助!

您可能已在inc/DataLib.php某處添加了空行。

更新#1:

根據您的回答,有兩個可疑點:

  1. Content-Type應為application/pdf 從理論上講, PDF :: Output()方法為您添加了它(除非php_sapi_name()返回cli ,這在網絡環境中是不可能的)。

  2. 在台式機PDF閱讀器中獲取空白頁(而不是出現錯誤),表明文檔已損壞,閱讀器甚至無法檢測到該文檔...或者文檔實際上是空白的。

對於#1(防火牆,代理或防病毒?)一無所知,但您至少可以檢查PDF源,以查找PHP錯誤消息或不屬於此的內容。

更新#2:

我想我終於明白了您的問題所在。 您不能使用JavaScript通過AJAX檢索PDF文件。 JavaScript所有可以做的是:

  1. 處理頁面的DOM(PDF不是HTML)。
  2. 用其他內容替換整個DOM頁面(並且無法告訴瀏覽器它是什么內容類型)。

我懷疑您直接從位置欄調用PDF生成器就可以了。

這就是不帶參數調用FPDF::Output() 它只是設置適當的標題,然后將PDF作為文本發送到瀏覽器。 如果要下載文件,則需要為Output()提供文件名,並將第二個參數設置為'D'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM