2010-03-20 4 views
0

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

Просьба направлять ....

ответ

4

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

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

Сейчас в DisplayImage. ASHX, вы можете переопределить ProcessRequest, как показано ниже: -

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> 

here и here.

Надеется, что это помогает ..

+0

Я думаю, что у вас есть вопрос не так. Я должен показать изображение в элементе управления изображениями asp.net не только на веб-странице. – HotTester

+0

@HotTester, приведенный выше код/​​концепция отобразит изображение в элементе управления IMG. Чтобы объяснить больше, предположим, что у вас есть страница (EmployeeDetails.aspx), где у вас есть элемент управления изображением, образ которого равен «DisplayImage.ashx? EmployeeId = 12». Когда вы запрашиваете страницу «EmployeeDetails.aspx» и когда обрабатывается элемент управления изображением, запрос переходит к DisplayImage.ashx (HttpHandler), который только собирается вывести двоичные данные для изображения, а затем отобразится в элементе управления Image Employee.aspx. Дайте мне знать, если я до сих пор не понял ваш вопрос. –

0

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

//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) 

Или, если вы хотите, и высоты также создать 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; 
} 
Смежные вопросы