在ASP.net中儲存/取出圖片入/從SQL資料庫

來源:互聯網
上載者:User

一、把圖片存入資料庫中

用到以下幾個方面的知識:
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)
就可以將圖片輸出到頁面上了

三:總結

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.