2012-05-14 19 views
1

Java6、Struts2.2.3.1 - バイト配列を画像(jpg)に変換しています。私はByteArrayのをエンコードし、MiGBase64を使用して文字列に変換
のJavaあなたがIEでこれを開くと、それは、FirefoxやChromebytearrayの画像はIE8で完全ではありません

http://jsbin.com/aheliy/2

を微開く一方の画像が、完全ではない、以下のリンクをご覧ください。 - this.bean.imageByteArrayStringフォームビーン

this.bean.setImageByteArrayString(new Base64().encodeToString(imageInByteArr, false)); 

JSP

を指し
<img src="data:image/jpg;base64,<c:out value='${bean.imageByteArrayString}'/>" /> 

IE8でこれが動作しない理由がわかりません。

答えて

3

IE8のデータURIスキームには32KBの制限があります。 the wikipedia article on the subjectも参照してください。

代わりに通常のURLを生成し、イメージを提供するサーブレットを持っているか、イメージが実際にすでにWebサーバーのディスクファイルシステム上にある場合は、別のWebアプリケーションコンテキストを作成して参照できるだけです直接URLで

+0

ありがとうございました。私はこのサイズの制限も認識していますが、IEで部分画像のサイズを確認したところ、ほぼ750kbでした。だからちょっと混乱してしまった。私は、id、descなどの他の属性も持つbean内のbytearrayからイメージを取得し、イメージ取得のための追加のサーバーヒットを避けたいと思います。私はwebserviceからこのイメージ配列を取得しているし、ファイルシステムでそれを持っていない。 – SyAu

+0

私はimgタグにバイト配列を割り当てる私の元の計画を廃止しました。私はIE8で正しいものを得ることができなかったからです。 strutsアクションクラスを使用して、出力ストリームにバイトを出力してイメージをレンダリングするようになりました。 – SyAu

関連する問題