2016-01-30 78 views
1

繼承人我的代碼PHP的下載功能,給我一個空文件,而不是

<?php 

$file = $_GET['file']; 

if (file_exists("uploaded_files\\" .$file)) { 
    header('Content-Description: File Transfer'); 
    header('Content-Type: application/octet-stream'); 
    header('Content-Length: ' . filesize($file)); 
    header("Content-Disposition: attachment; filename=" . basename($file)); 
    header('Content-Transfer-Encoding: binary'); 
    header('Expires: 0'); 
    header('Cache-Control: must-revalidate'); 
    header('Pragma: public'); 
    header('Content-Length: ' . filesize($file)); 
    ob_clean(); 
    flush(); 
    readfile("uploaded_files\\" .$file); 
    exit; 
} else { 
    echo "Download failed"; 
} 
?> 

我試圖讓用戶下載他們我的文件夾中上傳過任何文件,名爲uploaded_files

+0

有沒有辦法讓我的下載功能按預期工作? – Calvin

+0

「上傳的文件」目錄有哪些權限? – jlswint

+0

全部都有讀寫權限 – Calvin

回答

0

你需要改變您的文件位置,因爲readfile()需要文件的絕對路徑

<?php 
$file = $_GET['file'] 
$file = "uploaded_files/".$file; 

if (file_exists($file)) { 
    header('Content-Description: File Transfer'); 
    header('Content-Type: application/octet-stream'); 
    header('Content-Disposition: attachment; filename="'.basename($file).'"'); 
    header('Expires: 0'); 
    header('Cache-Control: must-revalidate'); 
    header('Pragma: public'); 
    header('Content-Length: ' . filesize($file)); 
    readfile($file); 
    exit; 
}else { 
    echo "Download failed"; 
} 
?> 
+0

我試過把我的完整路徑加入它 – Calvin

+0

readfile(「C:\\ xampp \\ htdocs \\ FYPproject \\ uploaded_files \\」。$ file) ; 仍然無效 – Calvin

+0

謝謝!我有多愚蠢。 – Calvin

相關問題