2013-02-09 94 views
9

我希望我的移動應用程序能夠將圖像上傳到我的服務器,在我的情況下,這是一個Rails 3.2.11nginxBase64圖片上傳VS二進制圖片上傳?

我讀了很多關於的base64在客戶端編碼,然後在服務器端解碼。

爲什麼不只是使用二進制上傳多部分 HTTP請求標頭?

是否有任何優缺點每個技術?

回答

16

Base64將您的數據轉換爲二進制數據的ASCII表示形式。它允許您將數據嵌入到文本流中,例如JSON。 Base64將傳輸數據的大小增加了33%。

multipart/form-data是在HTTP請求中傳輸二進制數據的標準方式。它允許您爲想要傳輸的每個部分使用特定的編碼/內容類型。在我看來,你應該堅持分段上傳,除非你有特定的要求或設備/ SDK功能。

1

'爲什麼不只是在http請求中使用帶有multipart標頭的二進制上載?'實際上爲什麼不);

Base64圖像表示可以直接放置在html中以呈現圖像。

二進制佔用較少的空間。並從更大的網絡效應和標準化中受益。例如。如果你想使用亞馬遜簡單的安全存儲S3,你必須存儲一個二進制文件。您不能存儲需要密鑰/值存儲庫的字符串,例如Redis的。