2017-02-07 20 views
0

ジェネリックハンドラを使用して、データベースからイメージコントロールにバイナリイメージを表示することができました。新しいタブで画像を開くか、マウスから右クリックしてリンクアドレスをコピーします。しかし、使用されるURLは汎用ハンドラ (http://localhost:1948/admin/imghndlr.ashx?serial=qwertyuiop)のアドレスです。私は検索してみましたが、結果が間違っていたり、誤ったキーワードが使われたりしていません以下は、新しいタブの画像のスクリーンショットです。 Right Click>Open image on new tabジェネリックハンドラから新しいタブで画像を開く方法は?

+0

コントロールに設定する前にバイナリデータをイメージに変換して返しましたか? –

+3

PNGのように見えますが(最初の文字を参照)、間違ったコンテンツ/ MIMEタイプのヘッダーで送信されます。http://stackoverflow.com/a/1031144/74585 –

答えて

0

どのようにイメージを表示していますか?

あなたのビューファイルは次のようになります。もちろん、データを変更する必要があります:image/jpegを使用するファイル拡張子。

<img alt="" src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAsMAAAGhCAIAAAALOi7ZAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3QgLEhM6PUSGrwAAIABJREFUeNq8vcuSLEmWHKZ6jnlEZt5761Z3T/eAHAICAYRcEALsuOCWPzbzDfwP/gKXWJACoRDCBSkEBgPhADKY7qnu+4wIdztHuThmHh55q2t6ho+SlpaqyMwID3ez89CjqsY//dM//bM/+zMc/pGE3//PT/z09/1I0t/1Rz/x+o9+0I++vv/n8fU/8MW/9U9+9JVvL/v/u1cy86cv5ttfePXKq//8fTfhp+/qT3/oq8v+6V/+Ay/v25/+4X/46nqO"/> 

また、そのバイトファイルを変換するのを忘れないでください。

Convert.ToBase64String(Foto); 
0

データを追加する必要があります。mime-typeは、データに応答するタイプをブラウザに知らせるためです。次のようなコードを追加しました:

public void ProcessRequest(HttpContext context) 
{ 
    //image/png is png mime 
    context.Response.ContentType = "image/png"; 
    //read buffer from database 
    context.Response.BinaryWrite(buffer); 
} 
関連する問題