0

整数IDとJPEG画像であるvarbinary(max)ImageDataの2つの列を含むSQLServerテーブルがあります。Javascriptでは、特定のIDのImageDataを取得し、それをバイト配列として返すAjax呼び出しがあります。画像を表示するXHTMLIMGタグを生成するにはどうすればよいですか?

私の考えは、返された配列でcreateObjectURLを使用することでしたが、(a)これはIE 8で実行できる必要があり、このメソッドをサポートしていないようです。(b)Firefoxは実際のBlobタイプを期待しているようです。バイトの配列よりも(そしてBlob()コンストラクターは存在しないように見えます)。

別の方法があります-データをBase64文字列として返し、タグを使用しますが、IE8では機能せず、他のブラウザではサイズ制限がある可能性があります(一部の画像は600Kです。つまり、タグは100万文字を超える可能性があります)。

4

1 に答える 1

1

より単純な解決策がすでに存在する問題を過剰に設計しています。

AJAXを使用して次のHTMLを挿入し、ブラウザにHTTP経由で画像自体をフェッチさせます。AJAXを介して画像データを送信するには、無意味なbase64エンコード/デコードが必要になり、最終的にはより多くの帯域幅を使用し、ブラウザのキャッシュを無効にします。

<img src="imageServer.php?imageID=3224" />

次にimageServer.php(これを作成するか、どこかで取得します)、適切な画像レコードを取得し、画像のMIMEタイプを吐き出し、バイナリデータをストリーミングします。

于 2012-07-25T18:16:07.523 に答える