2014-05-20 48 views
0

我有一個使用fpdf生成pdf的腳本,該文件在我的電腦上的服務器上正確保存。在同一個php文件中,我運行下面的代碼來下載文件。當我下載pdf並在記事本中檢查時,pdf中的所有內容都是相同的,除了它在開頭包含了很多以前的文件html。保存到我的服務器的文件沒有任何。爲什麼我的PDF下載受損?

什麼會導致這樣的事情發生?我不知道在哪裏尋找這個錯誤的根源,任何人都可以指出我發現問題的方向嗎?

<?php 
$filename=($name.$ran.'.pdf'); 
$pdf->Output($name.$ran.'.pdf'); 

header ("Cache-Control: must-revalidate, post-check=0, pre-check=0"); 
    header('Content-Type: application/octetstream'); 
    header("Content-Transfer-Encoding: Binary"); 
    header("Content-length: ".filesize($filename)); 
    header("Content-disposition: attachment; filename=\"".basename($filename)."\""); 
readfile($name.$ran.'.pdf'); 
?> 
+0

我收到以下錯誤:解析錯誤:語法錯誤,意外的''.pdf''(T_CONSTANT_ENCAPSED_STRING)在C:\ xampp \ htdocs \ download.php在行33 – user42537

+1

輸出緩衝區可能會導致該錯誤。你的問題很可能沒有包含完整的例子來重現這一點,在你發佈之前有HTML。它進入輸出緩衝區,然後附加到響應主體,即在「readfile」輸出之前。請參閱:http://php.net/book.outcontrol – hakre

+0

您認爲清除緩衝區可以解決該問題嗎? – user42537

回答

1

我設法弄清楚了,謝謝哈!基本上我只需要在使用readfile()和代碼工作之前使用ob_clean()清除輸出緩衝區!

相關問題