2012-08-31 51 views
0

我有一個非常基本的問題,由下面的代碼片段說明。 這是我想下載一個zip文件的一個更大的程序的相關部分。所示的代碼以及相應的註釋產生了預期的瀏覽器輸出「立即下載文件」。php header內容處置

當我取消註釋代碼時,zip文件正確地下載到我的瀏覽器!

但是,瀏覽器輸出不生成。我如何重新獲得控制權?我想讓用戶有其他選擇。 (順便說一下,取消註釋單個「內容處置」行足以導致失去控制權。)

我試過包括代碼,把它放在一個函數中,許多可能的組合ob_start,ob_end沖洗等,都無濟於事。我確信我忽略了一些非常基本的東西,並希望得到一些建議。

謝謝。

<?php 
$sZipFN = 'file.zip'; 
// header("Content-type: application/zip"); 
// header("Content-disposition: attachment; filename=$sZipFN"); 
// readfile($sZipFN); 
$sMsg = "Download the file now.";   
?> 
<html> 
    <body> 
    <p> <?php echo $sMsg; ?> </p> 
    </body> 
</html> 
+1

一個「下載失敗時啓動點擊這裏」每個URL只能攜帶一個資源。它是一個ZIP文件或一個HTML頁面。不是都。 – mario

+0

[PHP不會顯示頁面並下載]的可能重複(http://stackoverflow.com/questions/11894891/php-wont-show-page-and-download) – mario

回答

1

你不能 - 你必須重定向到選項頁,然後開始通過JavaScript重定向(document.location = 'http://download.url/';

下載這將開始下載和保留用戶喜歡你的選項頁慾望。

不要忘了包括鏈接附近的某處頁面頂部(以防萬一禁止javascript)