2011-06-19 220 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