2012-06-22 11 views
5

可能性の重複:
How can you encode to Base64 using Javascript?バイナリmultipartフォームデータをbase64として送信するにはどうすればいいですか?

私はファイル(画像、PDF、RTF)をアップロードするユーザーを有効にする機能を持つJava、ウィケットとjQueryに基づくWebアプリケーションを持ってマルチパート/フォームデータ。

私たちのWebセキュリティインフラストラクチャは、すべてのhttpトラフィックをフィルタリングして、おそらく悪意のあるコンテンツを取得します。

フィルタは、通常のテキスト入力フィールドとファイルデータを区別しないため、アップロードされた多くのバイナリファイルから誤検知を拾い、それらのファイルがアップロードされないようにします。セキュリティポリシーを変更することはできません。

これは、ファイルデータがBase-64でエンコードされているため、電子メールクライアントと同様のContent-Transfer-Encoding:base64で送信される場合が最善の方法です。

ブラウザにbase64やその他の非バイナリ形式のバイナリを転送するよう指示する方法はありますか?

もしそうでなければ、いくつかのJavaScriptを使って手動で行うことができますか?

+4

私の質問はなぜ重複していたのですか?私は "JavaScriptを使ってbase64エンコーディングをどうやって行うことができるか"という質問はしませんでした。バイナリ形式のデータを、**自動的にまたはJavaScriptを使用してフォームの提出のコンテキストで**いくつかの文字形式、たとえばbase64 **でエンコードする方法があるかどうかを尋ねました。私はstackoverflowの別の場所でこの問題を発見していない。 – David

+3

私は同意する、それは正確な複製ではなかった。 – biziclop

答えて

2

あなたがW3CからContent-Transfer-Encoding: base64
引用設定できるようだ:各部分がエンコードされ、その部分の値がに準拠していない場合付属の「Content-Transfer-Encoding」ヘッダすることができる

をデフォルト(7BIT)使用中のJava Web Serverはパラメータを違いを無視しません提供

http://www.w3.org/TR/html401/interact/forms.html#h-17.13.4.2

をコードします。

+1

'Content-Transfer-Encoding:base64 'が存在すると、ブラウザは実際にバイナリデータをbase64に変換して転送することをサーバに示します。これは開発者が設定するのではなく、ブラウザがファイル入力タグにどのように応答するかです。しかし、ブラウザはどのようにしてbase64エンコーディングを行うことができますか? – David

+2

あなた自身がBase64でエンコードしているかもしれませんが、そこにはjQueryプラグインはほとんどありません:https://github.com/carlo/jquery-base64 – didxga

関連する問題