仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 383|回复: 8
打印 上一主题 下一主题

[学习教程] ASP编程:在ASP.NET中把图片保留到SQL SERVER数据...

[复制链接]
兰色精灵 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 23:09:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
asp,你就只能等着微软给你解决,它不乐意你就只好悲催。而且asp跑在windows服务器上,windows服务器跟linux比起来简直弱爆了!asp.net|server|数据|数据库先容
在良多情形下,我们必要把图片保留到数据库中。在某些使用程序中,存在一些敏感信息不克不及被存储到文件体系中,由于存储在文件体系上的任何图片都很简单被用户不法取得。

本文将会商在ASP.NET中如何把图片保留到SQLSERVER数据库中。

在本文中我们将懂得到以下几方面的内容:

l????????上载图片文件的请求

l????????利用Strem工具

l????????取得上载图片巨细和范例

l????????怎样利用InputStream办法?

上载图片文件的请求

在入手下手上载前我们必要作两件主要的事变

#Form标志的enctype属性必要被设置为以下情势:

enctype="multipart/form-data"

#供应一个让用户选择图片文件的Html控件:



#还要援用System.IO定名空间来处置Strem工具

上述的三项都要使用到aspx页中。在SQLSERVER中另有以下的一些请求:

#一个最少有一个字段范例为Image的表

#别的有一个用来存储图片范例的Varchar范例的字段就更好了

那末,我们有了一个有Image字段范例的数据表和一个(HTML文件控件)。我们还必要一个提交按钮,当用户选择好图片后能够点击它。在按钮的OnClick事务中我们要取得图片文件的内容并终极把它拔出到数据表中。让我们来看看按钮的OnClick事务,它读取图片并把图片拔出到数据表中。

提交按钮的OnClick事务代码

?

??DimintImageSizeAsInt64
????DimstrImageTypeAsString
????DimImageStreamAsStream

????GetstheSizeoftheImage
????intImageSize=PersonImage.PostedFile.ContentLength

????GetstheImageType
????strImageType=PersonImage.PostedFile.ContentType

????ReadstheImage
????ImageStream=PersonImage.PostedFile.InputStream

????DimImageContent(intImageSize)AsByte
????DimintStatusAsInteger
????intStatus=ImageStream.Read(ImageContent,0,intImageSize)

????CreateInstanceofConnectionandCommandObject
????DimmyConnectionAsNewSqlConnection(ConfigurationSettings.AppSettings("ConnectionString"))
????DimmyCommandAsNewSqlCommand("sp_person_isp",myConnection)

????MarktheCommandasaSPROC
????myCommand.CommandType=CommandType.StoredProcedure

????AddParameterstoSPROC
????DimprmPersonImageAsNewSqlParameter("@PersonImage",SqlDbType.Image)
????prmPersonImage.Value=ImageContent
????myCommand.Parameters.Add(prmPersonImage)

????DimprmPersonImageTypeAsNewSqlParameter("@PersonImageType",SqlDbType.VarChar,255)
????prmPersonImageType.Value=strImageType
????myCommand.Parameters.Add(prmPersonImageType)

????Try
????????myConnection.Open()
????????myCommand.ExecuteNonQuery()
????????myConnection.Close()
????????Response.Write("Newpersonsuccessfullyadded!")
????CatchSQLexcAsSqlException
????????Response.Write("InsertFailed.ErrorDetailsare:"&SQLexc.ToString())
????EndTry

?

它是怎样事情的?

工具PersonImage是HTMLInputFile控件。起首我们要取得被拔出图片的巨细,经由过程以下办法完成:

intImageSize=PersonImage.PostedFile.ContentLength

接着要经由过程ContenType属性取得图片范例。最初最主要的是要取得图片文件流,经由过程以下办法完成:

ImageStream=PersonImage.PostedFile.InputStream

我们有一个byte数组ImageContent,筹办用来保留图片内容。全部图片经由过程Stream工具的Read办法读取,这个办法有三个参数,即:

#被复制的图片内容的方针地位

#读的入手下手地位

#必要被读的子节数

读声明以下:

intStatus=ImageStream.Read(ImageContent,0,intImageSize)

如今,我们读取了全部图片内容。接着我们必要把图片内容拔出SQL数据表中,我们将用用一个存储历程把图片范例和图片拔出SQL数据表。假如你看过下面的代码清单,你就晓得我们把数据范例设置为SqlDbType.Image.就如许,我们乐成地把图片保留到了SQLSERVER数据库。

例子的输入样例



图:将图片保留到sqlserver数据库

测试上面的代码

代码下载

点击这里下载ASPX页

点击这里下载存储历程

总结

如许,我们完成了如何把图片保留到数据库的会商。我们也筹办好了利用下面的下载部分供应的例子和存储历程。假如你想晓得如何从SQLSERVER中读取图片,请参阅我的这篇文章RetrievingImagesfromSqlServerinASP.NET

译者注:因为遭到HTTP传输协定的限定,在分歧的情况下可以上载文件的巨细纷歧。关于要上传年夜文件的WEB使用程序来讲,这并非一个完善的办理计划,只是为我们供应了一种绝对较好的办法。我已经用这类办法在局域网中乐成上载30M的文件,可是在体系功能较低的别的一个本机体系中,最多只能上载5M的数据。别的必要读者注重的是,上载年夜文件的时分要得当修正machine.config和web.config文件,只需你翻开这些文件就能够晓得如何得当的修正。初度翻译,还看人人多多斧正。


</p>因为ASP脚本语言非常简单,因此其代码也简单易懂,结合HTML代码,可快速地完成网站的应用程序。还无法完全实现一些企业级的功能:完全的集群、负载均横。
第二个灵魂 该用户已被删除
沙发
发表于 2015-1-20 07:43:24 | 只看该作者
我们必须明确一个大方向,不要只是停留在因为学而去学,我们应有方向应有目标.
冷月葬花魂 该用户已被删除
板凳
发表于 2015-1-24 14:18:48 | 只看该作者
接下来就不能纸上谈兵了,最好的方法其实是实践。实践,只能算是让你掌握语言特性用的。而提倡做实际的Project也不是太好,因为你还没有熟练的能力去综合各种技术,这样只能使你自己越来越迷糊。
透明 该用户已被删除
地板
发表于 2015-1-24 15:29:01 | 只看该作者
学习ASP其实应该上升到如何学习程序设计这种境界,其实学习程序设计又是接受一种编程思想。比如ASP如何学习,你也许在以前的学习中碰到过。以下我仔细给你说几点:
小女巫 该用户已被删除
5#
发表于 2015-2-1 19:48:09 | 只看该作者
我想问如何掌握学习节奏(先学什么再学什么)最好详细点?
不帅 该用户已被删除
6#
发表于 2015-2-22 08:13:47 | 只看该作者
接下来就不能纸上谈兵了,最好的方法其实是实践。实践,只能算是让你掌握语言特性用的。而提倡做实际的Project也不是太好,因为你还没有熟练的能力去综合各种技术,这样只能使你自己越来越迷糊。
老尸 该用户已被删除
7#
发表于 2015-3-6 23:35:13 | 只看该作者
下载一个源代码,然后再下载一个VBScript帮助,在源代码中遇到不认识的函数或是其他什么程序,都可以查帮助进行解决,这样学习效率很高。
只想知道 该用户已被删除
8#
发表于 2015-3-13 22:37:06 | 只看该作者
封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变,业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高。
admin 该用户已被删除
9#
发表于 2015-3-20 20:55:59 | 只看该作者
下面简单介绍一下我学习ASP的方法,希望对想学习ASP的朋友有所帮助...
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 09:55

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表