background image

    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 中检索图片。