程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> 在ASP.net中保存/取出圖片入/從SQL數據庫(可用於上傳圖片)

在ASP.net中保存/取出圖片入/從SQL數據庫(可用於上傳圖片)

編輯:.NET實例教程

一、把圖片存入數據庫中
 
用到以下幾個方面的知識:
1. 使用流對象
2. 查找准備上傳的圖片的大小和類型
3.怎麼使用InputStream方法

插入圖片的必要條件
1.#Form 標記的 enctype 屬性應該設置成 enctype="multipart/form-data"
2.# 需要一個<input type=file>表單來使用戶選擇他們要上傳的文件,同時我們需要導入 System.IO名稱空間來處理流對象 
對SqlServer做以下的准備
1.# 需要至少含有一個圖片類型的字段的表
2.# 如果我們還有另外一個變字符類型的字段來存儲圖片類型,那樣會更好一些。

窗體控件
1.插入圖片用到的是System.Web.UI.HtmlControls.HtmlInputFile控件,我們在webform中放入這個控件,取名為“imgInput”
2.同時再放入一個確認上傳按鈕“Button1”

程序代碼
AddImg,用於返回要上傳的圖片內容

 1Private Function AddImg()Function AddImg(ByVal InputImg As System.Web.UI.HtmlControls.HtmlInputFile, ByVal ImgType As String, ByVal MaxSize As Int64) As Byte()
 2'傳入一個Htmlinputfile控件,一個上傳圖片格式和一個上傳圖片最大值,返回圖片的內容,既要寫入數據庫中的內容,你也可以同時寫入圖片類型
 3        Dim intImageSize As Int64
 4        Dim strImageType As String
 5        Dim ImageStream As Stream
 6        ' Gets the Image Type
 7   strImageType=InputImg.PostedFile.ContentType
 8        If strImageType <> ImgType Then
 9            Response.Write("<script>alert('圖片類型為""')</script>") 'jgp類型為"image/pjpeg"
10            Exit Function
11        End If
12        ' Gets the Size of the Image
13        intImageSize = InputImg.PostedFile.ContentLength
14        If intImageSize > MaxSize Then
15            Response.Write("<script>alert('圖片不得大於K')</script>")
16            Exit Function
17        End If
18        ' Reads the Image
19        ImageStream = InputImg.PostedFile.InputStream
20        Dim ImageContent(intImageSize) As Byte
21        Dim intStatus As Integer
22        intStatus = ImageStream.Read(ImageContent, 0, intImageSize)
23        Return ImageContent
24    End Function
示例調用

Dim imageContent() As Byte
       imageContent = AddImg(fileImg, "image/pjpeg", 512000)'上傳圖片類型為jpg,最大不超過500K

插入數據庫

我想這部分就不用寫了吧,你可以用任何方式(推薦使用存儲過程),將imageContent插入到數據庫中類型為image的字段就行了。

二、把圖片從數據庫中讀出

這部分比較簡單:

假設img變量是你從數據庫中取出的圖片內容
那麼直接使用
Response.BinaryWrite(img)
就可以將圖片輸出到頁面上了

三:總結
將圖片存放在數據庫中其實是起到了圖片保護的作用,這樣就算別人浏覽你的機器也看不到你的圖片,也可以用來保護重要的圖片資料。

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