仓酷云

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

[学习教程] ASP.NET网页编程之怎样用asp.net把上传的图片保留到数据库...

[复制链接]
跳转到指定楼层
楼主
发表于 2015-1-16 22:29:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
可怜的程序员,还是逃不出移植的命运!在这篇文章中我们能够学到以下几个方面的常识:
1.拔出图片的需要前提
2.利用流工具
3.查找筹办上传的图片的巨细和范例
4.怎样利用InputStream办法?

拔出图片的需要前提
在我们入手下手上传之前,有两件主要的事我们必要做:
#Form标志的enctype属性应当设置成enctype="multipart/form-data"
#必要一个<inputtype=file>表单来利用户选择他们要上传的文件,同时我们必要导进System.IO称号空间来处置流工具
把以上三点使用到aspx页面。同时我们必要对SqlServer做以下的筹办。
#必要最少含有一个图片范例的字段的表
#假如我们另有别的一个变字符范例的字段来存储图片范例,那样会更好一些。
如今,我们筹办了一个Sql表(包括了一个image数据范例的字段),另有<inputtype=file>标志。固然我们还得筹办Submit按钮,以便用户在选择了图片今后提交。在这个按钮的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,这能够用以下代码完成:
ImageStream=PersonImage.PostedFile.InputStream
我们必要一个字节型数组来存储image内容。读取全部图片可使用Stream工具的Read办法来完成。Read(inbyte[]buffer,intoffset,intcount)办法有三个参数。【关于Read办法的具体能够参看.NetFrameWorkSDK】他们是:
buffer
字节数组。此办法前往时,该缓冲区包括指定的字符数组,该数组的offset和(offset+count)之间的值由从以后源中读取的字节交换。
offset
buffer中的从零入手下手的字节偏移量,今后处入手下手存储从以后流中读取的数据。
count
要从以后流中最多读取的字节数。
这个Read办法用以下代码完成:
intStatus=ImageStream.Read(ImageContent,0,intImageSize)
.

如今,我们已读取了全部图片的内容,下一步,我们要把这些内容存进到sql表。我们将利用存储历程来完成拔出图片范例和图片内容到sql表。假如你扫瞄了下面的代码,你将会发明我们利用了sqldbtype.image的数据范例(datatype)。Ok了,完成了这些,我们也就乐成的把图片存进到SqlServer中了。上面是我们编写的aspx页面。

我觉得这个学习方法很重要。初学者应该跟我一样有同样一个毛病。那就是急于求成。很想就自己做出个小小的系统来。可真要动手,却又茫然而不知所措。为什么会这样呢?因为我们没有耐心去学习基础知识。写根本看不到什么效果的测试代码。
蒙在股里 该用户已被删除
沙发
发表于 2015-1-19 14:48:00 | 只看该作者
提供基于组件、事件驱动的可编程网络表单,大大简化了编程。还可以用ASP.NET建立网络服务。
admin 该用户已被删除
板凳
发表于 2015-1-25 09:18:19 | 只看该作者
现在主流的网站开发语言无外乎asp、php、asp.net、jsp等。
因胸联盟 该用户已被删除
地板
发表于 2015-2-2 20:45:03 | 只看该作者
ASP是把代码交给VBScript解释器或Jscript解释器来解释,当然速度没有编译过的程序快了。
愤怒的大鸟 该用户已被删除
5#
发表于 2015-2-8 06:04:44 | 只看该作者
碰到复杂点的问题都不知道能不能解决,现在有点实力的公司都选择自已在开源的基础上做开发。但没听说过有人在IIS上做改进的,windows、sqlserver集群方面的应用也很少见。
山那边是海 该用户已被删除
6#
发表于 2015-2-24 17:21:06 | 只看该作者
是指转换后的Servlet程序代码的行数。这给调试代码带来一定困难。所以,在排除错误时,可以采取分段排除的方法(在可能出错的代码前后输出一些字符串,用字符串是否被输出来确定代码段从哪里开始出错)。
深爱那片海 该用户已被删除
7#
发表于 2015-3-7 12:48:56 | 只看该作者
ASP.NET:ASP.net是Microsoft.net的一部分,作为战略产品,不仅仅是ActiveServerPage(ASP)的下一个版本;它还提供了一个统一的Web开发模型,其中包括开发人员生成企业级Web应用程序所需的各种服务。ASP.NET的语法在很大程度上与ASP兼容,同时它还提供一种新的编程模型和结构,可生成伸缩性和稳定性更好的应用程序,并提供更好的安全保护。
8#
 楼主| 发表于 2015-3-15 05:58:06 | 只看该作者
主流网站开发语言之CGI:CGI就是公共网关接口(CommonGatewayInterface)的缩写。它是最早被用来建立动态网站的后台技术。这种技术可以使用各种语言来编写后台程序,例如C,C++,Java,Pascal等。
透明 该用户已被删除
9#
发表于 2015-3-21 19:52:19 | 只看该作者
Servlet却在响应第一个请求的时候被载入,一旦Servlet被载入,便处于已执行状态。对于以后其他用户的请求,它并不打开进程,而是打开一个线程(Thread),将结果发送给客户。由于线程与线程之间可以通过生成自己的父线程(ParentThread)来实现资源共享,这样就减轻了服务器的负担,所以,JavaServlet可以用来做大规模的应用服务。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-24 02:30

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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