Android 使用Base64編碼圖片後上傳伺服器的原理

weixin_34321977發表於2017-07-19

在開發中經常會遇到上傳頭像的的需求, 我們往往不會直接將圖片本身或者圖片的地址上傳到後臺伺服器上面去, 通常的做法是先將圖片使用Base64編碼後再上傳,那麼問題來啦,android使用base64上傳圖片有什麼好處?


【解答】

(1) 從節約資源消耗, 減少伺服器負擔的角度:

減少HTTP請求量......可以一次性把需要釋出的資料和影象打包成一個請求發出去,方便. 因為HTTP請求 是一個無連線狀態,每次連線和傳輸後就會斷開,方便節約資源。 基於這樣的一個道理,我們可以將圖片和資料一次性進項網路訪問,以便節約資源開銷,減少伺服器的開銷。

(2)從儲存的角度:

使用Base64編碼後的圖片可以相當文字處理, 可以作為欄位放在資料庫中,方便儲存和檢視。

(3) 從顯示的角度:

優於資料載入出來,關於提前載入圖片的應用

這個大家可以去看一下天貓主頁的css程式碼,大家可能沒有注意到,在我們使用網速不好的時候網路去訪問天貓的時候,在頁面沒有完全載入出來的時候會出現一個“小貓”的等待圖示,增加了使用者體驗。其實現的原理就是將那張圖片使用base64編碼放到css中,因為我們都知道,css是在html的頭部引用的,要是優先與下面的內容被載入,所以在網速不好的時候就會出現這種效果。

3793005-d85b957994645145.jpg

天貓css截圖)

3793005-80d5afca192ce2f3.jpg

【課外知識:】

(1)  使用Base64編碼圖片伺服器可能需要時間 ,建議開啟執行緒,避免造成主執行緒阻塞。

(2) 一般需要上傳Base64圖片 和 圖片名稱(建議獲取當前時間作為名稱來作為圖片唯一名稱   System.currentMillTime())。

相關文章