2012-06-21 383 views
-1

我正在尝试使用PHP下载文件。现在该文件已下载,但未达到原始格式(缺少扩展名)。使用原始文件扩展名重命名后,我可以使用下载的文件。我使用下面的代码文件下载无法正常工作

header("Expires: 0"); 
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); 
header("Cache-Control: no-store, no-cache, must-revalidate"); 
header("Cache-Control: post-check=0, pre-check=0", false); 
header("Pragma: no-cache"); 
header("Content-type: application/".$result['ext']); 
header('Content-length: '.filesize($file)); 
header('Content-disposition: attachment; filename='.$result['file_name']); 
readfile($file); 
exit; 

其中

$result['ext']="rar", 
$file="file path to the uploaded folder". 

回答

2

我敢肯定,你必须扩展到文件名的浏览器发送作为Content-disposition头的一部分。

为您的代码,你就必须改变这一点:

header('Content-disposition: attachment; filename='.$result['file_name']); 

到:

$filename = $result['file_name'] . '.' . $result['ext']; 
header('Content-disposition: attachment; filename=' . $filename); 
+0

由于现在正在 – user1467983

+0

我如何评价你。对不起,我在这里看不到任何选项:( – user1467983

+0

不客气!在询问问题15分钟后,您将无法接受答案。有关详细信息,请参阅[如何接受答案工作](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) – nickb