程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> Asp.net中圖片存儲數據庫以及頁面讀取顯示通用方法詳解

Asp.net中圖片存儲數據庫以及頁面讀取顯示通用方法詳解

編輯:關於ASP.NET

前端碰到對在一個系統遇到流程控制中需要存儲在數據庫存儲一個簽名圖片的問題-一 直控制不好, 今天特別關於這個問題詳細看了一下.其實這個問題網上資源還是相當多的, 但問題是過於凌亂 資料殘缺不全 甚至我感覺其中有相當的一部分會對讀者產生一些誤導 .對於Asp.net中存儲圖片我在08年一月份就做了一個詳細解決方案,今天在這個基礎主要 對一些細節控制上以及頁面顯示上做了完善,詳細步驟如下:

首先聲明一下開發環境:VS2008+SQL2005數據庫+.NET FrameWork 3.5版本

(1)存儲圖片ImageStore表數據庫設計:

1 create table StoreImage
2 (
3    id int not null  identity(1,1) primary key,
4    markname varchar(100) not null,-- 圖片備注名稱
5    markContent image not null,--文件內容
6     markType varchar(100) not null,--保存文件類型 用於生成
7     markSize int not null,--圖片長度 讀取數據用
8    markLinkUrl  varchar(1000) not null,--數據庫路徑
9    markDate datetime not  null default( getdate())--上傳時間
10 )
11 go

其中在表中設計中添加了上傳圖片文件類型和文件大小(Byte[]字節大小),主要為了讀 取時對圖片顯示進行控制.請參考後面編碼說明.存儲圖片內容采用Image類型,SQL2005數 據容量為2G,對應C#中類型Byte[](字節數組),其中在設計中我還參考使用SQL中Binary類 型, 但是測試後發現Binary類型容量范圍1-8000字節,對於圖片容量太小, markLinkUrl為 了測試以圖片路徑方式存儲並讀取顯示在頁面這種方式 請參考後面詳細說明.

(2)圖片存儲到數據庫並單一讀取:

圖片存儲:通過文件上傳獲取圖片並轉換成Byte[]字節數組,保存到數據庫Image字段, 頁面設計如下:

代碼

1 <!--說面這是全部的頁面代碼:-->
2  <form id="form1"  runat="server" style="font-size:12px;" enctype="multipart/form- data">
3
4      備 注:<asp:TextBox ID="markname"  runat="server"></asp:TextBox>
5      上  傳:<asp:FileUpload ID="FileUpload1" runat="server" />
6       <asp:Button ID="Button1"    runat="server"  OnClientClick="return  checkClint()"   Text="上 傳"     onclick="Button1_Click" />
7
8      <script  language="javascript" type="text/javascript">
9        function  checkClint()
10        {
11          var  getmarkname=document.getElementById("markname");
12          var  getfile=document.getElementById("FileUpload1");
13
14           if(getmarkname.value=="")
15          {
16             alert('請輸入圖片備注名稱!');
17             getmarkname.focus();
18            return false;
19           }else if(getfile.value=="")
20          {
21             alert('請選擇上傳文件路徑!');
22             getfile.focus();
23            return false;
24           }else
25          {
26            return  true;
27          }
28        }
29       </script>
30      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
31       <asp:Button ID="Button2" runat="server" onclick="Button2_Click" Text=" 讀取圖片" />
32
33      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
34       <asp:Button ID="Button3" runat="server" onclick="Button3_Click" Text=" 讀取到Image控件中" />
35      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
36       <asp:Button ID="Button5" runat="server" onclick="Button5_Click"     Text="存儲鏈接方式獲取圖片" />
37      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
38       <asp:Button ID="Button4" runat="server"  onclick="Button4_Click" Text="下載圖片" />
39      <br  />
40      <br />
41      <asp:Image  ID="Image1" runat="server" />
42      <br />
43       圖片路徑方式讀取:<br />
44      服務器端:<asp:Image  ID="Image2" runat="server" />
45      <br />
46       <asp:Label ID="Label2" runat="server"></asp:Label>
47       <br />
48      客戶端Img:<img alt=""   runat="server" id="clintimg" />
49      <br />
50       <asp:Label ID="Label1" runat="server"></asp:Label>
51      </form>

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved