2013-02-09 71 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的。