如何在Asp.net的图像控件中显示数据库中的图像?

如何在Asp.net的图像控件中显示数据库中的图像? 我们必须在asp.net页面上显示员工的形象以及他的详细信息,但问题是如何在asp.net图像控件上显示图像,以便通过属性ImageUrl进行图像控制。

请引导….

您可以创build一个HttpHandler(ashx)页面,该页面将查询string并将其设置为图像控件的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> 

详情在这里和这里 。

希望这可以帮助..

这也可以在不创build处理程序的情况下完成。

 //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,则使用MemoryStream创build一个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; }