2016-01-30 43 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

相关问题