如何顯示在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