温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

ASP.NET数据库图片如何存储到Sql2000中

发布时间:2021-11-22 14:11:23 来源:亿速云 阅读:160 作者:小新 栏目:编程语言

这篇文章给大家分享的是有关ASP.NET数据库图片如何存储到Sql2000中的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

ASP.NET数据库图片存储:插入图片的必要条件

在我们开始上传之前,有两件重要的事我们需要做:

#Form 标记的 enctype 属性应该设置成 enctype="multipart/form-data"

# 需要一个<input type=file>表单来使用户选择他们要上传的文件,同时我们需要导入 System.IO名称空间来处理流对象

把以上三点应用到aspx页面。同时我们需要对SqlServer做以下的准备。

# 需要至少含有一个图片类型的字段的表

# 如果我们还有另外一个变字符类型的字段来存储图片类型,那样会更好一些。

现在,我们准备了一个Sql表(包含了一个image数据类型的字段),还有<input type=file>标记。当然我们还得准备Submit按钮,以便用户在选择了图片以后提交。在这个按钮的Onclick事件里,我们需要读取选取图片的内容,然后把它存入到表里。那我们先来看看这个Onclick事件。

提交按钮的Onclick事件的代码:

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

这是怎么实现ASP.NET数据库图片存储的呢?

PersonImage是HTMLInputFile控件的对象。首先需要获得图片的大小,可以使用下面的代码实现:

intImageSize = PersonImage.PostedFile.ContentLength

然后返回图片的类型使用ContenType属性。***,也是最重要的事就是取得Image Stream,这可以用以下代码实现:

ImageStream = PersonImage.PostedFile.InputStream

我们需要一个字节型数组来存储image 内容。读取整个图片可以使用Stream对象的Read方法来实现。Read(in byte[] buffer,int offset,int count)方法有三个参数。他们是:

buffer

字节数组。此方法返回时,该缓冲区包含指定的字符数组,该数组的 offset 和 (offset + count) 之间的值由从当前源中读取的字节替换。

offset

buffer 中的从零开始的字节偏移量,从此处开始存储从当前流中读取的数据。

count

要从当前流中最多读取的字节数。

这个Read方法用以下代码实现:
intStatus = ImageStream.Read(ImageContent, 0, intImageSize)
.

现在,我们已经读取了整个图片的内容,下一步,我们要把这些内容存入到sql 表。我们将使用存储过程来完成插入图片类型和图片内容到sql 表。如果你浏览了上面的代码,你将会发现我们使用了sqldbtype.image的数据类型(datatype)。Ok了,完成了这些,我们也就成功的把图片存入到SqlServer中了。

感谢各位的阅读!关于“ASP.NET数据库图片如何存储到Sql2000中”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI