知识大全 如何在ASP.Net 中把图片存入数据库

Posted 字节

篇首语:好鼓一打就响,好灯一拔就亮。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 如何在ASP.Net 中把图片存入数据库相关的知识,希望对你有一定的参考价值。

如何在ASP.Net 中把图片存入数据库  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

   一 介绍

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

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

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

   插入图片的必要条件

   使用流对象

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

   .怎么使用InputStream方法?

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

  (1)Form 标记的 enctype 属性应该设置成 enctype= multipart/form data

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

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

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

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

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

提交按钮的Onclick事件的代码

Dim intImageSize As Int Dim strImageType As StringDim ImageStream As Stream

Gets the Size of the ImageintImageSize = PersonImage PostedFile ContentLength

Gets the Image TypestrImageType = PersonImage PostedFile ContentType

Reads the ImageImageStream = PersonImage PostedFile InputStream

Dim ImageContent(intImageSize) As ByteDim intStatus As IntegerintStatus = ImageStream Read(ImageContent intImageSize)

Create Instance of Connection and Command ObjectDim myConnection As New SqlConnection(ConfigurationSettings AppSettings( ConnectionString ))Dim myCommand As New SqlCommand( sp_person_isp myConnection)

Mark the Command as a SPROCmyCommand CommandType = CommandType StoredProcedure

Add Parameters to SPROCDim prmPersonImage As New SqlParameter( @PersonImage SqlDbType Image)prmPersonImage Value = ImageContentmyCommand Parameters Add(prmPersonImage)

Dim prmPersonImageType As New SqlParameter( @PersonImageType SqlDbType VarChar )prmPersonImageType Value = strImageTypemyCommand Parameters Add(prmPersonImageType)

TrymyConnection Open()myCommand ExecuteNonQuery()myConnection Close()Response Write( New person successfully added! )Catch SQLexc As SqlExceptionResponse 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 intImageSize)  现在 我们已经读取了整个图片的内容 下一步 我们要把这些内容存入到sql 表 我们将使用存储过程来完成插入图片类型和图片内容到sql 表 如果你浏览了上面的代码 你将会发现我们使用了sqldbtype image的数据类型(datatype) Ok了 完成了这些 我们也就成功的把图片存入到SqlServer中了 下面是我们编写的aspx页面

  二 结论

cha138/Article/program/net/201311/15186

相关参考

知识大全 asp.net 将一个图片以二进制值的形式存入Xml文件中的实例代码

asp.net将一个图片以二进制值的形式存入Xml文件中的实例代码  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一

知识大全 ASP.NET如何存取 SQLServer数据库图片

ASP.NET如何存取SQLServer数据库图片  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 ASP.NET如何存取SQL Server数据库图片

ASP.NET如何存取SQLServer数据库图片  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 asp.net中利用ashx实现图片防盗链的原理分析

直接分析盗链原理看下面用watch截获的发送的数据GET/Imgashx?img=svn_workgifHTTP/Accept:*/*Referer:AcceptLanguage:zhcnUACPU:

知识大全 在ASP.net 中从sqlserver检索(retrieve)图片

在ASP.net中从sqlserver检索(retrieve)图片  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一

知识大全 jQuery在asp.net中实现图片自动滚动

jQuery在asp.net中实现图片自动滚动  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  时

知识大全 ASP.NET如何在mail的正文显示图片

ASP.NET如何在mail的正文显示图片  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!lishi

知识大全 在ASP.NET中上传图片并生成缩略图

在ASP.NET中上传图片并生成缩略图  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!以下是引用片段

知识大全 ASP.NET如何在mail的正文显示图片[1]

ASP.NET如何在mail的正文显示图片[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 ASP.NET如何在mail的正文显示图片[2]

ASP.NET如何在mail的正文显示图片[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!