如何显示在Asp.net的图像控制在数据库中的图像?我们必须表现出员工的形象与他在asp.net页面细节一起,但问题是如何显示上的图像控制的asp.net图像控制图像由酒店的ImageUrl需要的画面。如何在Asp.net的图像控件中显示数据库中的图像?
请指导....
如何显示在Asp.net的图像控制在数据库中的图像?我们必须表现出员工的形象与他在asp.net页面细节一起,但问题是如何显示上的图像控制的asp.net图像控制图像由酒店的ImageUrl需要的画面。如何在Asp.net的图像控件中显示数据库中的图像?
请指导....
您可以创建这将需要一个查询字符串,并设置一个HttpHandler(ASHX)页,作为图像控制
<asp:image id="imgEmployee" imageUrl="DisplayImage.ashx?employeeId=<someId>"/>
现在DisplayImage的ImageUrl属性。 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>
希望这有助于..
这也可以不创建一个处理程序中完成。
//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)
或者,如果你想与和高度也,用MemoryStream
创建Image
并获得图像属性。
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;
}
我想你错了。我必须在asp.net的图像控件中显示图像,而不仅仅是在网页上。 – HotTester 2010-03-20 08:17:53
@HotTester,上面的代码/概念将显示在IMG控制图像。为了更多地解释,假设你有一个页面(EmployeeDetails.aspx),你必须将图像控制,其IMAGEURL的是“DisplayImage.ashx?雇员= 12”。当你请求“EmployeeDetails.aspx”页面,当图像控制是越来越呈现,请求将前往DisplayImage.ashx(一个HttpHandler),它只是要输出的二进制数据的图像,然后将得到显示在Employee.aspx的Image控件中。如果我仍然误解了你的问题,请告诉我。 – 2010-03-20 08:44:54