2013-03-28 76 views
0

我下載使用PHP不支持或PHP

PDF/DOC文件,這是我的HTML代碼下載時損壞的PDF/DOC文件:

<a title="Download" target="_new" href="includes/pdf_server.php?file=test.pdf">Test PDF</a> 

這是我的PHP代碼pdf_server.php文件

<?php 
$file = $_GET["file"]; 
if (file_exists("../PDF/".$file)) { 
    header('Content-Description: File Transfer'); 
    header('Content-Type: application/octet-stream'); 
    header("Content-Type: application/force-download"); 
    header('Content-Disposition: attachment; filename=' . urlencode(basename($file))); 
    // header('Content-Transfer-Encoding: binary'); 
    header('Expires: 0'); 
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); 
    header('Pragma: public'); 
    header('Content-Length: ' . filesize("../PDF/".$file)); 
    ob_clean(); 
    flush(); 
    readfile($file); 
    exit; 
} 
?> 

PDF是在那裏我有我的檢驗.pdf文件的文件夾。當我點擊鏈接下載文件。瀏覽器顯示要下載的文件,其大小(1.4 MB),但下載完成後,我打開文件,它顯示錯誤文件損壞或不支持的文件。然後我檢查它的顯示0字節的屬性。

請幫

+0

應用程序/力下載似乎並沒有成爲一個標準的MIME類型 – Naveed 2013-03-28 06:09:30

+0

那麼應該是 – user2181466 2013-03-28 06:11:51

+0

接受工作答案 – gaRex 2013-03-28 06:27:35

回答

3

嘗試這個 -

<?php 
$file_name = $_GET["file"]; 
if (file_exists("../PDF/".$file_name)) { 
    header('Pragma: public'); // required 
    header('Expires: 0');  // no cache 
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); 
    header('Last-Modified: '.gmdate ('D, d M Y H:i:s', filemtime ("../PDF/".$file_name)).' GMT'); 
    header('Cache-Control: private',false); 
    header('Content-Type: '.'application/pdf'); 
    header('Content-Disposition: attachment; filename="'.basename("../PDF/".$file_name).'"'); 
    header('Content-Transfer-Encoding: binary'); 
    header('Content-Length: '.filesize($file_name)); // provide file size 
    header('Connection: close'); 
    readfile("../PDF/".$file_name);  // push it out 
    exit(); 
} 
?> 
+0

不工作什麼下載顯示爲0字節時 – user2181466 2013-03-28 06:11:33

+0

嘿它的工作現在我改變了你的代碼在一些地方(「../PDF/".$file在所有的地方,而不是$文件)現在它的工作正常。謝謝 – user2181466 2013-03-28 06:15:52

+0

祝你好運,我正在編輯這個 – 2013-03-28 06:17:23