簡體   English   中英

php標頭內容處置

[英]php header Content-disposition

我有一個非常基本的問題,由下面的代碼片段說明。 這是一個更大的程序的相關部分,我希望在其中下載一個zip文件。 顯示的代碼(帶有注釋)可以產生預期的瀏覽器輸出“立即下載文件”。

當我取消注釋代碼時,該zip文件已正確下載到我的瀏覽器中!

但是,不會產生瀏覽器輸出。 如何重新獲得控制權? 我想讓用戶有其他選擇。 (順便說一句,取消注釋單個“ Content-disposition”行就足以導致失去控制。)

我試過包括代碼,將其放入函數中,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>

您不能-您必須重定向到選項頁面,然后通過javascript重定向( document.location = 'http://download.url/'; )開始下載

這將開始下載,並根據需要將用戶留在選項頁面上。

不要忘了在頁面頂部附近添加“如果下載無法開始單擊此處”鏈接(以防禁用javascript)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM