解決網頁圖片另存為的時候 ,只能儲存 .BMP的 問題
阿新 • • 發佈:2019-02-14
不知道 大家有沒 這樣的經歷,用 TOMCAT做應用伺服器的時候,很多圖片在頁面上顯示的時候,按右鍵-點屬性,顯示圖片格式為.JPG .GIF,但是如果按 圖片另存為的時候,儲存格式只有BMP,而且檔案尺寸很大(BMP是最大的儲存圖片型別),為了這個問題,老闆煩了我幾天了,公司裡的人也沒辦法。
而且換了 APACHE 當圖片處理伺服器,就是為了提高圖片的下載速度。但是換了以後沒覺得圖片下載速度有多大的提升,反而覺得穩定性沒以前好了,有時候圖片會下載失敗 ,但圖片又明明存在,重新整理後顯示正常 。
後來認真研究了這個問題,發現是由於檔案沒被完全下載的緣故。
因為如果網頁圖片沒經過處理,在傳輸過程中,在本地 快取儲存的是 BMP格式,在下載完以後再轉換成 原來的檔案格式,這個和應用程式沒什麼關係,並且這樣對應用伺服器端比較大,有的時候會出現圖片下載失敗的現象。
怎麼辦呢,我無意中找到了APACHE的 DEFLATE 功能 ,HTTP 檔案壓縮功能 。
這個組建是APACHE 2的 內帶元件,一般配置的時候就已經安裝好。如果您沒安裝,請按照下面的步驟 .
cd bin
vi apr-1-config
修改前
LDFLAGS=""
修改後
LDFLAGS="-lz"
:wq
apxs -iac /webservice/server/httpd/modules/filters/mod_deflate.c
設定完成後 進入 CONF目錄
vi httpd.conf
在最後新增
<IfModule mod_deflate.c>
DeflateCompressionLevel 9
SetOutputFilter DEFLATE
DeflateFilterNote Input instream
DeflateFilterNote Output outstream
DeflateFilterNote Ratio ratio
LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflate
CustomLog logs/deflate_log.log deflate
</IfModule>
然後 在 LOGS目錄下 ,就會出現deflate。log 會出現檔案壓縮日誌,效果很不錯 ,瀏覽速度有了很大的提升。並且 BMP 問題基本解決
DeflateCompressionLevel 9
SetOutputFilter DEFLATE
DeflateFilterNote Input instream
DeflateFilterNote Output outstream
DeflateFilterNote Ratio ratio
LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflate
CustomLog logs/deflate_log.log deflate
</IfModule>