最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

ASP.Net 圖片存入數(shù)據(jù)庫的實現(xiàn)代碼

 更新時間:2008年11月26日 12:21:10   作者:  
在很多時候,我們有這樣的需求:把圖片存入到數(shù)據(jù)庫當中。在一些應(yīng)用程序中,我們可能有一些敏感的資料,由于存儲在文件系統(tǒng)(file system)中的東西,將很容易被某些用戶盜取,所以這些數(shù)據(jù)不能存放在文件系統(tǒng)中。
在這篇文章中,我們將討論怎樣把圖片存入到Sql2000當中。
在這篇文章中我們可以學(xué)到以下幾個方面的知識:
1. 插入圖片的必要條件
2. 使用流對象
3. 查找準備上傳的圖片的大小和類型
4.怎么使用InputStream方法?
插入圖片的必要條件
在我們開始上傳之前,有兩件重要的事我們需要做:
#Form 標記的 enctype 屬性應(yīng)該設(shè)置成 enctype="multipart/form-data"
# 需要一個<input type=file>表單來使用戶選擇他們要上傳的文件,同時我們需要導(dǎo)入 System.IO名稱空間來處理流對象
把以上三點應(yīng)用到aspx頁面。同時我們需要對SqlServer做以下的準備。
# 需要至少含有一個圖片類型的字段的表
# 如果我們還有另外一個變字符類型的字段來存儲圖片類型,那樣會更好一些。
現(xiàn)在,我們準備了一個Sql表(包含了一個image數(shù)據(jù)類型的字段),還有<input type=file>標記。當然我們還得準備Submit按鈕,以便用戶在選擇了圖片以后提交。在這個按鈕的Onclick事件里,我們需要讀取選取圖片的內(nèi)容,然后把它存入到表里。那我們先來看看這個Onclick事件。
提交按鈕的Onclick事件的代碼:
以下為引用的內(nèi)容:
復(fù)制代碼 代碼如下:

Dim intImageSize As Int64
Dim strImageType As String
Dim ImageStream As Stream
' Gets the Size of the Image
intImageSize = PersonImage.PostedFile.ContentLength
' Gets the Image Type
strImageType = PersonImage.PostedFile.ContentType
' Reads the Image
ImageStream = PersonImage.PostedFile.InputStream
Dim ImageContent(intImageSize) As Byte
Dim intStatus As Integer
intStatus = ImageStream.Read(ImageContent, 0, intImageSize)
' Create Instance of Connection and Command Object
Dim myConnection As New SqlConnection(ConfigurationSettings.AppSettings("ConnectionString"))
Dim myCommand As New SqlCommand("sp_person_isp", myConnection)
' Mark the Command as a SPROC
myCommand.CommandType = CommandType.StoredProcedure
' Add Parameters to SPROC
Dim prmPersonImage As New SqlParameter("@PersonImage", SqlDbType.Image)
prmPersonImage.Value = ImageContent
myCommand.Parameters.Add(prmPersonImage)
Dim prmPersonImageType As New SqlParameter("@PersonImageType", SqlDbType.VarChar, 255)
prmPersonImageType.Value = strImageType
myCommand.Parameters.Add(prmPersonImageType)
Try
myConnection.Open()
myCommand.ExecuteNonQuery()
myConnection.Close()
Response.Write("New person successfully added!")
Catch SQLexc As SqlException
Response.Write("Insert Failed. Error Details are: " & SQLexc.ToString())
End Try

這是怎么工作的呢?
PersonImage是HTMLInputFile控件的對象。首先需要獲得圖片的大小,可以使用下面的代碼實現(xiàn):
intImageSize = PersonImage.PostedFile.ContentLength
然后返回圖片的類型使用ContenType屬性。最后,也是最重要的事就是取得Image Stream,這可以用以下代碼實現(xiàn):
ImageStream = PersonImage.PostedFile.InputStream
我們需要一個字節(jié)型數(shù)組來存儲image 內(nèi)容。讀取整個圖片可以使用Stream對象的Read方法來實現(xiàn)。Read(in byte[] buffer,int offset,int count)方法有三個參數(shù)?!娟P(guān)于Read方法的詳細可以參看.Net FrameWorkSDK】他們是:
buffer
字節(jié)數(shù)組。此方法返回時,該緩沖區(qū)包含指定的字符數(shù)組,該數(shù)組的 offset 和 (offset + count) 之間的值由從當前源中讀取的字節(jié)替換。
offset
buffer 中的從零開始的字節(jié)偏移量,從此處開始存儲從當前流中讀取的數(shù)據(jù)。
count
要從當前流中最多讀取的字節(jié)數(shù)。
這個Read方法用以下代碼實現(xiàn):
intStatus = ImageStream.Read(ImageContent, 0, intImageSize)
現(xiàn)在,我們已經(jīng)讀取了整個圖片的內(nèi)容,下一步,我們要把這些內(nèi)容存入到sql 表。我們將使用存儲過程來完成插入圖片類型和圖片內(nèi)容到sql 表。如果你瀏覽了上面的代碼,你將會發(fā)現(xiàn)我們使用了sqldbtype.image的數(shù)據(jù)類型(datatype)。Ok了,完成了這些,我們也就成功的把圖片存入到SqlServer中了。下面是我們編寫的aspx頁面。
圖片存入數(shù)據(jù)庫結(jié)論
我們已經(jīng)討論了如何把圖片存入到Sql Server,那么我們?nèi)绾螐腟qlServer中讀取圖片呢?可以參看我的另一篇文章:在Asp.Net中從SqlServer中檢索圖片。

相關(guān)文章

  • .NET8中g(shù)RPC的使用方法詳解

    .NET8中g(shù)RPC的使用方法詳解

    gRPC是一種高性能、開源的遠程過程調(diào)用(RPC)框架,基于 HTTP/2 協(xié)議,支持雙向流、頭部壓縮等特性,下面我們就來看看.NET8下gRPC的具體使用吧
    2025-03-03
  • Asp.net 基于Cookie簡易的權(quán)限判斷

    Asp.net 基于Cookie簡易的權(quán)限判斷

    基于Cookie簡易的權(quán)限判斷代碼,需要的朋友可以參考下。
    2010-01-01
  • python安裝pillow的三種方法

    python安裝pillow的三種方法

    本文python安裝pillow的三種方法,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • asp.net音頻轉(zhuǎn)換之.amr轉(zhuǎn).mp3(利用七牛轉(zhuǎn)換法)

    asp.net音頻轉(zhuǎn)換之.amr轉(zhuǎn).mp3(利用七牛轉(zhuǎn)換法)

    相信很多人都遇到amr格式的音頻文件不能直接在網(wǎng)頁播放的問題,有人使用QuickTime插件的輔助,下面這篇文章主要給大家介紹了asp.net音頻轉(zhuǎn)換之利用七牛轉(zhuǎn)換法將.amr格式轉(zhuǎn).mp3格式,需要的朋友可以參考借鑒,下面來一起看看吧。
    2016-12-12
  • .NET 6開發(fā)TodoList應(yīng)用之實現(xiàn)PUT請求

    .NET 6開發(fā)TodoList應(yīng)用之實現(xiàn)PUT請求

    PUT請求本身其實可說的并不多,過程也和創(chuàng)建基本類似。這篇文章主要為大家介紹了.NET6實現(xiàn)PUT請求的示例詳解,感興趣的小伙伴可以跟隨小編一起學(xué)習一下
    2021-12-12
  • 服務(wù)器安全狗導(dǎo)致ASP.NET網(wǎng)站運行出錯的一個案例

    服務(wù)器安全狗導(dǎo)致ASP.NET網(wǎng)站運行出錯的一個案例

    這篇文章主要介紹了服務(wù)器安全狗導(dǎo)致ASP.NET網(wǎng)站運行出錯的一個案例,最后一并給出了解決方法,需要的朋友可以參考下
    2014-08-08
  • 合并兩個DataSet的數(shù)據(jù)內(nèi)容的方法

    合并兩個DataSet的數(shù)據(jù)內(nèi)容的方法

    合并兩個DataSet的數(shù)據(jù)內(nèi)容的方法,需要的朋友可以參考一下
    2013-03-03
  • VS2015下簡單使用EF框架的方法

    VS2015下簡單使用EF框架的方法

    這篇文章主要為大家詳細介紹了VS2015下簡單使用EF框架的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • asp.net 無刷新附件上傳實現(xiàn)方法

    asp.net 無刷新附件上傳實現(xiàn)方法

    一直以來附件上傳都是個很郁悶的問題,剛開始是利用js添加input file 然后一起提交來實現(xiàn)多文件上傳,在使用163郵箱的時候很是羨慕它的附件上傳部分(選擇完文件就提交,可以多個文件一起上傳,而且還可以獲取上傳進度),這時就很想自己也寫個那樣的東西出來。
    2010-01-01
  • ASP.NET?MVC實現(xiàn)區(qū)域路由

    ASP.NET?MVC實現(xiàn)區(qū)域路由

    這篇文章介紹了ASP.NET?MVC實現(xiàn)區(qū)域路由的方法,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03

最新評論

姚安县| 合江县| 股票| 清水河县| 通许县| 邢台县| 本溪| 长治县| 平阴县| 海晏县| 绍兴市| 揭阳市| 太康县| 威海市| 独山县| 麻江县| 佛山市| 乐平市| 肥西县| 礼泉县| 英山县| 呼和浩特市| 体育| 达日县| 阜阳市| 正镶白旗| 邯郸市| 瓦房店市| 弥渡县| 涿州市| 阿巴嘎旗| 五原县| 沙湾县| 治多县| 锦屏县| 贡觉县| 盘锦市| 祁门县| 右玉县| 泰安市| 丽江市|