2012-12-21 41 views
0

數據庫中的我的表包含一個類型爲image的列。如何顯示具有固定大小的圖像,從ASP.NET中的數據庫中獲取

我設法將圖像上傳到數據庫。

但幾乎所有的教程在那裏,向我們展示瞭如何給圖像控制器包含頁面的名稱的網址,以及有選擇的行的ID在數據庫

實例參數:

//Database codes here... (query..etc..) 
SqlDataReader myReader = myCommand.ExecuteReader(); 
if (myReader.HasRows == true) 
{ 
    myReader.Read(); 
    Response.ContentType = "image/jpg"; 
    Response.BinaryWrite((byte[])myReader[0]); 
    Image1.ImageUrl="User.aspx?imgid=1"; 
} 

所以,當我點擊一個特定的按鈕應該從數據庫中獲取這一形象,然後給該URL的圖像,該圖像在全屏幕中打開。但我不希望這樣,讓我們​​說我在我的頁面中有50像素寬度和50像素高度的圖像,如何在此空間內顯示圖像?並保留所有其他內容?就像用戶頁面,個人資料頁面一樣。

+0

這幾乎是相同的,你只是不讓他們縮略圖http://stackoverflow.com/questions/13988269/how-can-i-generate-a-thumbnail-from-an-image-in-server-folder/13988448#13988448 – Aristos

回答

-1

通常,將文件系統中的圖像存儲在文件系統中並使用圖像的文件名稱引用數據庫中的圖像通常要容易得多,而且容易出錯。

我從來沒有遇到過將數據存儲在圖像中的好理由。

而且,當你想修改要存儲在數據庫中的圖像,那麼你將不得不將其導出你的數據庫,然後再進口回。

+0

我已將我的圖片分成兩類。 公共圖像,存儲在一個文件夾中。 (易於使用) 私人圖像,用戶特定的圖像,我覺得我應該上傳到數據庫,以防止其他用戶到達他們。 我錯了嗎? – user1665700

+0

如果您爲私人圖片提供了隨機字符的文件名,例如RTWQ2312.jpg,那麼如何找到這些? –

+0

是否有隨機字符,不會將它們存儲在文件夾中?他們不能訪問這個文件夾嗎? – user1665700

3

可以使用控制圖像的顯示一個<img>標籤。所以說你的獲取並顯示圖像的ASP.NET頁面被稱爲ShowImage.aspx?ID=xxx

創建一個名爲ShowImageAt50px.aspx新頁面,並在頁面中添加以下標記:

<img src="ShowImage.aspx?ID=xxx" style="width:50px;" alt="" /> 

現在,當你訪問ShowImageAt50px.aspx它會顯示在50個像素寬的約束圖像。

+0

這是從數據庫中獲取和顯示圖像的「官方」方式? – user1665700

+0

是的。如果您使用的是ASP.NET WebForms,請考慮使用標記,但無論如何,結果是標記都會引用一個ASP.NET頁面,該頁面提取並返回數據庫中的圖像內容。 –

相關問題