33

モバイル アプリケーションでサーバーに画像をアップロードできるようにしたいのですが、私の場合はnginxを使用したRails 3.2.11です。

クライアント側でのBase64エンコーディングとサーバー側でのデコードについてよく読んでいます。

http 要求でマルチパートヘッダーを使用してバイナリアップロードを使用しないのはなぜですか?

各テクニックの長所/短所はありますか?

4

2 に答える 2

69

Base64 は、データをバイナリ データの ASCII 表現に変換します。たとえば、JSON などのテキスト ストリームにデータを埋め込むことができます。Base64 では、転送されるデータのサイズが 33% 増加します。

multipart/form-dataHTTP リクエストでバイナリ データを転送する標準的な方法です。転送したい部分ごとに特定のエンコーディング / コンテンツ タイプを使用できます。私の意見では、特定の要件やデバイス/SDK 機能がない限り、マルチパート アップロードに固執する必要があります。

于 2013-02-09T15:01:59.870 に答える
7

「http 要求でマルチパート ヘッダーを使用したバイナリ アップロードを使用しないのはなぜですか?」確かになぜではない;)

Base64 画像表現を html 内に直接配置して、画像をレンダリングできます。

バイナリはより少ないスペースを占有します。そして、より大きなネットワーク効果と標準化の恩恵を受けます。たとえば、Amazon Simple Secure Storage S3 を使用する場合は、バイナリ ファイルを保存する必要があります。キー/値ストア (redis など) が必要な文字列を格納することはできません。

于 2014-08-14T00:36:11.893 に答える