2011-01-09 97 views
2

什麼標題應該與一個圖像輸出(image.php打開時允許用戶下載圖像)發送圖像設置緩存時間爲3天(而不是從用戶端重新下載圖像)?設置壓縮標題和壓縮,緩存標題?

如何壓縮圖像並將其發送壓縮以及我應該發送哪些標題以告知瀏覽器該圖像是否被壓縮?

謝謝。

+1

你是一個真正的下載,或只是一個隱式下載(如資源都通過瀏覽器下載)? – Gumbo 2011-01-09 16:26:35

回答

0

那麼,最簡​​單的壓縮方法是從htaccess級別啓用deflate或gzip,如果你正在運行apache。如果沒有,你可以在文檔的開頭添加ob_gzhandler()功能爲ob_start()回調,像這樣:

<?php 
if(!ob_start("ob_gzhandler")) { 
    ob_start(); 
} 
//Feel free to echo image data and whatnot, the callback deals with the headers, compatibility, and compression! 
?> 

注意這需要zlib擴展。

您也可以add this function as the ob callback in the php.ini file或啓用zlib.output_compression指令。

至於設置緩存,簡單地輸出文本之前添加此header()電話:

<?php 
header('Cache-Control: max-age='.(5184000 * 3).', must-revalidate'); //Cache should last for 3 days 
?> 
0

這些標題應該罰款

  • 年齡:XXXXXX
  • 的Cache-Control:max-age的= 259200
  • 的Content-Length:XXXXXX
  • 內容類型:image/XXXXXX
  • 日期:星期六,XXXXXX
  • 的Etag:XXXXXX
  • 的Last-Modified:XXXXXX