All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
访问本机IIS站点被要求输入用户名和密码_[Asp.Net教程]
定义列表 Definition Lists_[Html教程]
数据库事务基本概念_mssql学习_编程技术
delphi图像组件(TImage)使用方法详解
AJAX使用技巧:如何处理书签和翻页按扭_.net资料_编程技术
c#中GDI+图形图像:GDI+中曲线的填充使用方法
xml的解析处理以及其他_[XML教程]
ASP.NET2.0自动搜索文件组成导航系统_.net资料_编程技术
在PHP中全面阻止SQL注入式攻击之二_php资料_编程技术
ASP.NET2.0中Tabs的简单实现_[Asp.Net教程]
Reading number is top 10 pictures
七步解决性冷淡
Sora aoi possession of boudoir2
A man's favorite things4
Fierce! China's special forces training the devil2
Beauty shocked Japan Tokyo motor show model
Sell the barbecue as says father du breul3
Average female college students1
男人帮杂志里的惹火性感美女1
Thrilling English baby
非笑不可:最强爆笑图片精选
Download software ranking
Sora aoi - one of more PK
C#编程思想
少妇苏霞全本
豪门浪荡史
Boxer's Top ten classic battle9
Tram sex maniac 2 (H) rar bag13
Tram sex maniac 2 (H) rar bag5
Ashlynn Video4
linux初级教程
网页特效实例大全
归海一刀 published in(发表于) 2014/1/30 1:32:08 Edit(编辑)
在asp.Net,中把图片存入数据库_[Asp.Net教程]

在asp.Net,中把图片存入数据库_[Asp.Net教程]

在asp.Net 中把图片存入数据库_[Asp.Net教程]
可能有很多的时候,我们急需把图片存入到数据库当中。在一些应用程序中,我们可能有一些敏感的资料,由于存储在文件系统(file system)中的东西,将很容易被某些用户****,所以这些数据不能存放在文件系统中。

在这篇文章中,我们将讨论怎样把图片存入到Sql2000当中。

在这篇文章中我们可以学到以下几个方面的知识:

1. 插入图片的必要条件

2. 使用流对象

3. 查找准备上传的图片的大小和类型

4.怎么使用InputStream方法?



插入图片的必要条件

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

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

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

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

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

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

现在,我们准备了一个Sql表(包含了一个image数据类型的字段),还有标记。当然我们还得准备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



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

intImageSize = PersonImage.PostedFile.ContentLength

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

ImageStream = PersonImage.PostedFile.InputStream

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

buffer

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

offset

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

count

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

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

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

结论

我们已经讨论了如何把图片存入到Sql Server,那么我们如何从SqlServer中读取图片呢?可以参看我的另一篇文章:在ASP.Net中从SqlServer中检索图片。



添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.