0

かなり単純な質問ですが、データベースに varbinary として保存されている画像があり、これらの画像を Web サイトに表示するのではなく、これらの画像へのリンクを提供したいと考えています。ユーザーがリンクをクリックすると、画像をダウンロードできるはずです。

4

3 に答える 3

3

リクエストに応じて画像が提供されます。

<img src="?" /> <!-- what goes here? -->

これらの画像のリクエストを受信するには、 HTTPハンドラーを作成する必要があります。

ハンドラーは、特定のURLで使用可能な実行可能ファイルであり、要求に応答できます。この場合、画像のバイナリデータを提供します。ASPXページは有効なハンドラーですが、画像にはより効率的なハンドラータイプがあります。

<img src="MyHandler.aspx?imageId=123" />

ハンドラーはいくつかのことを行う必要があります。

  • IDが有効であり、呼び出し元に権限があることを検証します(必要な場合)
  • データベースから画像を取得します
  • 適切な応答ヘッダーを設定する
  • Response.BinaryWrite()バイナリデータをクライアントに送信するために使用します。

ASP.Net MVCを使用している場合は、コントローラーをハンドラーとして使用できることに注意してください。

別の方法は、バイトをbase 64エンコードし、それらを画像タグに直接埋め込むことです。

<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA
AAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO
9TXL0Y4OHwAAAABJRU5ErkJggg==" alt="Red dot">

これは、小さな画像の場合や、複数のリクエストの費用が非常に高い場合に便利な手法です。

参照: http: //en.wikipedia.org/wiki/Data_URI_scheme

もっと読む:

于 2012-10-27T21:37:42.377 に答える
0

image-id を受け取って画像を返すページを作成する必要があります。

于 2012-10-27T21:31:34.060 に答える
0

あなたはこの質問を考えるかもしれません:

コード ビハインドで asp:image のデータ テーブルから画像を表示する

同様の問題があり、その答えが私の質問を解決しました。それに加えて、Telerik の binaryimage コンポーネントを使用できます。

http://www.telerik.com/products/aspnet-ajax/binaryimage.aspx

于 2012-10-27T21:56:30.563 に答える