好傢伙,我有流的PDF文件到PHP的問題,我使用這個代碼:PHP流PDF和ReadFile的產生損壞的PDF
if(file_exists($path))
{
//octet-stream
header("Content-Length: " . filesize ($path));
header("Content-type: application/octet-stream");
header("Content-disposition: attachment; filename=".basename($path));
readfile($path);
}
這是我的目錄結構(這樣你就可以理解其中PDF存儲):
Parent/
verify.php
auth/
pdf/
login.php
如果我從verify.php按預期的所有作品流的PDF文件...但是,如果我從他們的login.php被損壞流都相同PDF文件(損壞)。在login.php中
$path = "pdf/" . $filename . "_print.pdf";
在這裏,我的路徑定義
這裏我的路徑定義verify.php
$path = "auth/pdf/" . $filename . "_print.pdf";
Obviosly路徑定義爲前車流的代碼。
pdf文件的平均尺寸高達50Kb。
該文件存在beacuse通過if檢查,但我不知道爲什麼在一個地方是好的,而在另一個損壞。 (我已經檢查到目錄中的文件沒關係)。
對不起,我可憐的英語,並提前謝謝你。
Unfortunaltly,這是不是怎麼把文件的情況下」不inclueded我直接調用的login.php。 但是我試過在$ path中指定完整路徑,如下所示: '$ path =「/ home/eldblz/www/auth/pdf /」。 $文件名。 「_print.pdf」;' (「父母」僅用於示例目的) 腳本通過file_exists檢查呈現文件但已損壞。 無論如何,謝謝你的回覆。 – eldblz 2011-05-19 09:22:37
啊,對不起,我錯過了你問題的最後2句話......在這種情況下,可能是破壞了來自login.php的數據(一些PHP通知或警告),所以檢查你的代碼。用記事本或其他東西打開從login.php文件下載並搜索「通知/警告」。或者如果你有比較2個文件的東西(比如總指揮官),你可以比較通過'verify'和'login'腳本下載的文件,並找出問題所在。 – Slava 2011-05-19 09:33:03