使用Header() 強制使用PHP 下載檔案
問題:
儘管進行了各種嘗試,但使用者體驗使用PHP 的header() 函數提示從伺服器下載檔案有困難。他們觀察到發送的必要標頭,但在顯示儲存對話方塊時遇到問題。
解決方案:
要成功強製檔案下載,必須正確設定標頭。以下程式碼解決了提出的問題:
$quoted = sprintf('"%s"', addcslashes(basename($file), '"\')); $size = filesize($file); header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename=' . $quoted); header('Content-Transfer-Encoding: binary'); header('Connection: Keep-Alive'); header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Pragma: public'); header('Content-Length: ' . $size);
與先前嘗試的主要區別:
已驗證的瀏覽器:
此解決方案已被確認可在Firefox 8.0.1、Chrome 15.0.874.121 和 Safari 5.1.1 中運作。
以上是如何使用 `header()` 在 PHP 中強制下載檔案並避免瀏覽器顯示問題?的詳細內容。更多資訊請關注PHP中文網其他相關文章!