在PHP 中產生用於下載和重定向的檔案
在Web 應用程式中,經常需要在伺服器上產生檔案並提示使用者下載他們。 PHP 提供了一種使用標頭來實現此目的的簡單方法。不過,您也可能會遇到檔案產生並顯示下載提示後需要將使用者重新導向到新頁面的場景。
檔案下載後重定向的挑戰
您提供的程式碼片段成功設定了強制 CSV 下載所需的標頭。但是,在末尾新增重定向標頭 ("header("Location: /newpage")") 將無法如預期般運作。這是因為回顯內容時標頭已經發送,並且在內容完全發送到瀏覽器之前無法執行後續操作(例如重定向)。
替代方法
建議不要在下載提示後重定向,而是將用戶重定向到「最終」頁面,在該頁面中可以通知他們下載已成功啟動。最後一頁可以向使用者提供一條訊息,例如「您的下載應該自動開始。如果沒有,請點擊此處下載。」
自動啟動下載
到重新導向到最終頁面後自動啟動下載,您可以使用以下技術:
實作範例
這是一個如何重新導向使用者並自動啟動下載的範例:
header('Content-Type: application/csv'); header("Content-length: " . filesize($NewFile)); header('Content-Disposition: attachment; filename="' . $FileName . '"'); echo $content; // Set a redirect header to the final page header("Location: /final-page.php"); exit();
<!-- final-page.php --> Your download should start automatically. If not, click <a href="create_csv.php">here</a> to download.
此方法允許您將使用者重定向到另一個頁面並確保立即啟動檔案下載,無需手動幹預.
以上是如何在 PHP 中下載檔案後重定向使用者?的詳細內容。更多資訊請關注PHP中文網其他相關文章!