2012-02-16 20 views
1

私は、データベースにバイトデータ型で保存された画像を持っています。バイト配列は次のようになります。informixデータベースでバイトとして保存されたイメージを読み取る方法は?

Stream photo_stream = Photo_DAL.RetrievePhoto(int.Parse(reg); 
byte[] photo_bytes = Photo_DAL.StreamToByteArray(photo_stream); 

imageurl = "some url"を作成する方法はわかりません??

ハンドラについての記事をいくつか検索していますが、実際にはどのようにit.pleaseを使用するのか分かりません。

答えて

1

私は(MyImage.ashx)を検索し、ハンドラに関するいくつかの記事を見つけることが、本当に私はそれが

あなたのページにジェネリックハンドラを追加することができます使用する方法がわからない:

public class MyImage : IHttpHandler 
{ 
    public void ProcessRequest(HttpContext context) 
    { 
     string imageId = context.Request["imageId"]; 
     // use the image id to fetch the photo bytes from the backend 
     byte[] photoBytes = ... 
     // ensure the content type matches the one of your image 
     context.Response.ContentType = "image/png"; 
     context.Response.BinaryWrite(photoBytes); 
    } 

    public bool IsReusable 
    { 
     get { return true; } 
    } 
} 

と入力し、一部のWebフォームでImageコントロールのImageUrlプロパティをジェネリックハンドラに指定し、イメージのIDをクエリ文字列パラメータとして渡すことができます。

<asp:Image ID="myimage" runat="server" ImageUrl="~/myimage.ashx?imageid=123" /> 
+0

ユーザーに画像がない場合、私のフォルダに静的ファイルがありますか?多くのコンテンツタイプ 'png'、' jpg'を入れたいです。 –

+1

@just_name、静的なイメージの場合、一般的なハンドラーを気にしません。この場合は、 ''を直接参照します。そして、複数のイメージタイプを扱う場合は、この情報をデータベースに保存する必要があります。次に、イメージバイトを取得するだけでなく、dbから対応するコンテンツタイプも取得します。 –

+0

いいえデータベースにイメージがないのを確認してから静的なものを入れたいのですか? –

関連する問題