33

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

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

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

每种技术都有哪些优点/缺点?

4

2 回答 2

69

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

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

于 2013-02-09T15:01:59.870 回答
7

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

Base64 图像表示可以直接放在 html 中以呈现图像。

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

于 2014-08-14T00:36:11.893 回答