Как прочитать изображение, хранящееся в виде байта в базе данных informix? - PullRequest
1 голос
/ 16 февраля 2012

У меня есть изображения, хранящиеся в базе данных в виде байтовых данных. И я получаю байтовый массив следующим образом:

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

но я не знаю, как сделать imageurl = "некоторый URL" ??

Я ищу и нахожу несколько статей о обработчике, но на самом деле я не знаю, как его использовать.

1 Ответ

1 голос
/ 16 февраля 2012

Я ищу и нахожу несколько статей о обработчике, но на самом деле я не знаю, как его использовать

Вы можете добавить универсальный обработчик на свою страницу (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; }
    }
}

, а затем в некоторой веб-форме вы можете указать свойство ImageUrl элемента управления Image на общий обработчик и передать идентификатор изображения в качестве параметра строки запроса:

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