Как показать изображение в базе данных в элементе управления изображениями Asp.net? - PullRequest
0 голосов
/ 20 марта 2010

Как показать изображение в базе данных в элементе управления изображениями Asp.net? Мы должны показать изображение сотрудника вместе с его данными на странице asp.net, но проблема заключается в том, как показать изображение на элементе управления изображением asp.net, для элемента управления изображением снимается свойство ImageUrl.

Пожалуйста, руководство ....

Ответы [ 2 ]

4 голосов
/ 20 марта 2010

Вы можете создать страницу HttpHandler (ashx), которая будет принимать строку запроса и устанавливать ее в качестве свойства imageUrl элемента управления изображением

<asp:image id="imgEmployee" imageUrl="DisplayImage.ashx?employeeId=<someId>"/>

Теперь в DisplayImage.ashx вы можете переопределить запрос процесса, как показано ниже: -

    public void ProcessRequest (HttpContext context) 
    { 
          int employeeId;
          if (context.Request.QueryString["employeeId"] != null)
   employeeId = Convert.ToInt32(context.Request.QueryString["employeeId"]);
          else
            throw new ArgumentException("No parameter specified");

        byte[] imageData= ;// get the image data from the database using the employeeId Querystring
        Response.ContentType = "image/jpeg"; // You can retrieve this also from the database
        Response.BinaryWrite(imageData);

    } 

Изменения в Web.config: -

<httpHandlers>
  <add verb="*" path="img/*" type="DisplayImage"/>
</httpHandlers>

Подробности здесь и здесь .

Надеюсь, это поможет ..

0 голосов
/ 31 марта 2017

Это также можно сделать без создания обработчика.

//get the image from the database as byte array
byte[] image = (byte[])dr["image"];

//set the ImageUrl of the Image Control as a Base64 string
Image1.ImageUrl = "data:image/jpeg;base64," + Convert.ToBase64String(image)

Или, если вам также нужны значения with и height, создайте Image с помощью MemoryStream и получите свойства изображения.

using (MemoryStream ms = new MemoryStream(image))
{
    System.Drawing.Image imageFromDB = System.Drawing.Image.FromStream(ms);

    Image1.ImageUrl = "data:image/jpeg;base64," + Convert.ToBase64String(image);
    Image1.Width = imageFromDB.Width;
    Image1.Height = imageFromDB.Height;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...