文件下載我知道如何讓下載過程中發生,當下載情況它附加在網頁導致下載HTML。我如何過濾HTML?迫使用PHP
迫使用PHP
回答
我明白,你想輸出一些流從PHP頁面下載?
如果是這樣,那就不要輸出從包含HTML,但如果重定向需要單獨的PHP頁面輸出僅下載流,與頭的頁面內容。
這就像一半的答案。它只是在「如果你想下載,強制下載」。 – Jake 2013-06-12 13:48:21
如果我理解正確,這是一個普遍的問題。我解決它通過使用ob_start在我的index.php開始的任意輸出occures之前(啓動/根/入境文件)和下載我做到以下幾點:
ob_end_clean();
header("Content-Type: application/octet-stream; ");
header("Content-Transfer-Encoding: binary");
header("Content-Length: ". filesize("thefileinquestion").";");
header("Content-disposition: attachment; filename=thefileinquestion");
$fp = fopen(thefileinquestion, "r");
while(!feof($fp)){
$buffer = fread($fp, 1024);
echo $buffer;
flush();
}
fclose($fp);
die();
更新
的ob_start
命令緩衝任何輸出(例如,通過echo,printf),並防止在實際下載之前發送給用戶的任何內容。 ob_end_clean
比停止這種行爲,並允許再次直接輸出。 HTH。
您可以通過調用readfile()將所有內容從'$ fp = ...'替換爲'fclose()'。 – 2009-06-15 23:19:51
確保文件流完成後,你不輸出額外的數據。在文件流完成後,使用exit()調用結束頁面執行。關閉'?>'標記後的任何字符(例如換行符)也可能導致下載問題。
移動下載腳本到它自己的文件應該發現任何問題更加容易,因爲它只有一件事。爲避免輸出任何最終的換行符,在這種情況下,您可以省略結尾的'?>'標記以及腳本的結尾。
- 1. 當我試圖迫使文件用PHP
- 2. F#迫使System.String.Format
- 3. 迫使由C#
- 4. CSS迫使頁腳
- 5. 繼承型迫使
- 6. 的IntelliJ迫使滿支架使用
- 7. 迫使用戶更新應用
- 8. 使用中可容納強迫加入
- 9. 被迫使用mutable來讀取Excel ThisWorkbook.Names?
- 10. 被迫向圖使用d3.js
- 11. 迫使菜單佔用的寬度
- 12. 如何迫使長期LIKE%...%
- 13. 試圖允許迫使HTTPS
- 14. 迫使h1留在1行
- 15. 重複WWW迫使htaccess的
- 16. 迫使其在SQL Server
- 17. 如何迫使QProcess中
- 18. OnModelCreating - 迫使新的創造
- 19. 迫使Python版本在Windows
- 20. PHPUnit迫使我在聲明
- 21. 擊迫使換行符
- 22. EF代碼第一次迫使迫切加載
- 23. Android的登錄和註冊使用PHP,MySQL和SQLite被迫關閉
- 24. 使用HSlider使用:事件的強迫的SliderEvent
- 25. 迫使glassfish使用UDP(配置或應用程序代碼)
- 26. 我是否在使用jQuery時被迫使用href =「#」?
- 27. 爲什麼日食迫使我使用最後的?
- 28. 迫使黑莓遊戲總是使用風景模式
- 29. VIM - 迫使>>使用空格,而不是製表符
- 30. 爲什麼當我使用float時,java迫使我添加f?
你能否澄清一下,理想情況下使用一些示例代碼?目前還不清楚你的意思是「導致下載」 – 2009-06-15 23:08:37