2012-04-15 12 views
20

Javascriptでクライアント側のさまざまな画像をより簡単に操作するために、クライアント側に送信するbase64文字列にファイルを変換するための関数をサーバー側(VB 2010)に作成しました。Internet ExplorerとBase64の画像表示

3つの異なる画像(1つのポートレートと2つの風景)でInternet Explorer 8.0で試したとき、私はポートレート画像のみが完全に表示されていることを認識しました。画像)。

Firefoxでローカルページを試すまでは、私の変換機能にバグがあると思っていました。すべての画像がFirefoxで完全に表示されます。

私の質問があります:これはInternet Explorerのよく知られたバグですか?答えが「はい」の場合、よく知られているバグについてよく知られている治療法はありますか?

+3

テストページにリンクしますか? – Marcel

+3

これはよく知られたバグです.IEにはすべてのURIに文字制限が課されています。つまり、データスキームURIには切り捨てられた内容がいくつかあります。 –

+0

Andrew Dunnのコメントに加えて、ファイルシステムやデータベース(SQL 2008のように、イメージの提供に専念している)を使用する方がよいでしょう。私は、jpg、gif、pngなどのプロトコルの圧縮に近づくとは思わない。また、dBからの画像を提供するためにVirtual Path Providerを使用することがファイルシステムよりもずっと遅いので、デザインを再考することをお勧めします。 –

答えて

14

IE8では、最大32kbのBase64 URIイメージしか作成できません。それはやや厄介な制限ですが、あなたはまだアイコンなどで手に入れることができます。 Base64でエンコードされた画像は平均で33%多くのデータがパイプを介して送信されることに注意してください...そうです、あなたの判断を使用してください。興味がある人々のために

、それは(...私は、その32キロバイトの制限を加えるかもしれない、なし)IE6/7でこれらの作業を行うことも可能です:http://venodesigns.net/2010/06/17/you-got-your-base64-in-my-css/

+0

あなたの答えに感謝します。私の場合、base64エンコーディングは役に立たないのですか?単純な文字列としてjpegイメージを送信し、base64の場合と同じように文字列を宣言してください。 "BB ", false) });