Base64图片上传VS二进制图片上传?

时间:2013-02-09 12:25:34

标签: android ruby-on-rails image http base64

我希望我的移动应用程序能够将图像上传到我的服务器,在我的情况下,它是 Rails 3.2.11 nginx

我在客户端读了很多关于 Base64 编码,然后在服务器端解码。

为什么不在http请求中使用二进制上传多部分标头?

每种技术都有优点/缺点吗?

2 个答案:

答案 0 :(得分:27)

Base64将您的数据转换为二进制数据的ASCII表示形式。它允许您将数据嵌入文本流中,例如JSON。 Base64将传输数据的大小增加了33%。

multipart/form-data是在HTTP请求中传输二进制数据的标准方法。它允许您为要传输的每个部分使用特定的编码/内容类型。在我看来,除非你有特定的要求或设备/ SDK功能,否则你应该坚持分段上传。

答案 1 :(得分:4)

'为什么不在http请求中使用带有多部分标题的二进制上传?'确实为什么不;)

Base64图像表示可直接放在html中以渲染图像。

Binary占用的空间更少。并从更大的网络效应和标准化中受益。例如。如果你想使用亚马逊简单安全存储S3,你必须存储二进制文件。您无法存储您需要密钥/值存储的字符串,例如redis的。