2011-06-19 117 views
0

我想下载一个.zip文件,但是当我去下载它时,它迫使我下载.php文件。我使用这个遍布互联网的简单代码,所以我不知道为什么我无法下载.zip文件。下载.zip文件问题(下载.php文件)

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/zip"); 
header('Content-length: '.filesize($fullpath)); 
header("Content-disposition: attachment; filename=".basename($fullpath)); 

readfile($fullpath); 
+0

的zip文件,浏览器是你测试它? – Sjoerd

+0

你确定你不只是下载一个名为.php的压缩文件吗? – JohnP

+0

你不需要'filesize($ fullfile)'吗? – pimvdb

回答

1

如果你是服务带有.zip扩展名的PHP文件,获得下载PHP源代码是预期行为 - ZIP文件没有默认由PHP解释器解析。

您必须注册ZIP扩展才能被PHP解析。尽管如此,这是非常不理想的;在这种情况下,您可以链接到带有.php扩展名的PHP文件。 filename标题将为下载文件的用户提供正确的名称。

如果您使用的是.php扩展名,并且PHP文件的源代码被提供,您的服务器配置就会中断。

+0

您正在将includefile与readfile混淆。 readfile不会尝试解释文件,如include。它只是“读取文件并将其写入输出缓冲区。” – Gerben

+0

@Gerben在投票前阅读评论。 *整个PHP源代码*被下载,永远不会被解释。可能是因为他使用.zip扩展名而不是.php –

+1

对不起,误读了 @phpEnthusiast wat是你的php代码的文件名? – Gerben

0

我认为你正在下载命名为.php
尝试打开下载的文件与winzipwinrar