Base64图片上传与二进制图片上传有何区别?

39

我希望我的移动应用程序能够将图像上传到我的服务器,我的服务器是一个带有 nginxRails 3.2.11

我阅读了很多关于在客户端使用Base64编码,然后在服务器端进行解码的内容。

为什么不直接使用multipart头的二进制上传来进行http请求呢?

这两种技术各有优缺点吗?

2个回答

80

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

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


11

'为什么不使用带有HTTP请求的多部分标头的二进制上传呢?'确实,为什么不呢 ;)

Base64图像表示法可以直接放置在HTML中以呈现图像。

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


更正:如果您想要,您可以在S3中存储一个字符串。这只是一种选择。我同意当您只想存储字符串时,redis更适用于键/值存储。 - srijanshukla

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接