深爱那片海 发表于 2015-1-16 23:47:35

ASP网页设计实例详解ASP的上传功能

国内有些大的CRM厂商的ASP就写得不错.无论是概念还是它里面用JAVASCRIPT的能力.并不是说现在的程序员用了ASP.NET来写程序就可以说自己高档了上传|详解|上传这个成绩已不是甚么奇怪成绩了,网上也有年夜把的教程,但年夜多半是授人以鱼,而不授人以渔,经由辛劳的材料搜集,思索,调试,收拾,我基础上已把这个成绩从道理上弄分明了,如今依据我本人的了解,在典范程序的基本上,加以注释,但愿能对部分网友有所匡助。  请诸位年夜虾能对个中的不正或不良这处予以斧正。
  我想循规蹈矩,先讲一个复杂的,单个图片文件保留到数据库。
  这个典范共包含三个ASP文件和一个数据库(一个表),全体在统一目次下。
  1、tblImage表布局(ACCESS2000)
  sn     主动编号 序列号
  content-type 文本   图片范例
  image   OLE工具 图片数据
  2、SimpleImageToData.asp:上传表单及保留图片到数据库的代码部分,次要文件。
<%@Language=VBScript%>
<%optionexplicit%>
<%
从一个完全路径中析出文件称号
functiongetFileNamefromPath(strPath)
getFileNamefromPath=mid(strPath,instrrev(strPath,"")+1)
endfunction
界说数据库毗连字符串
dimcnstr
cnstr="driver={MicrosoftAccessDriver(*.mdb)};dbq="&server.MapPath("./upload.mdb")
%>
<HTML>
<HEAD>
<title>单个图象保留到数据库</title>
<metahttp-equiv="Content-Type"content="text/html;charset=gb2312">
</HEAD>
<body>
<p><ahref="SimpleImageToData.asp">上传图片</a>
<ahref="ShowImageListFromData.asp">显现图片</a><hr></p>

<%
ifrequest.ServerVariables("REQUEST_METHOD")="POST"then
dimsCome,sGo,binData,strData
dimposB,posE,posSB,posSE
dimbinCrlf
dimstrPath,strFileName,strContentType

binCrlf=chrb(13)&chrb(10)界说一个单字节的回车换行符

setsCome=server.CreateObject("adodb.stream")
sCome.Type=1指定前往数据范例adTypeBinary=1,adTypeText=2
sCome.Mode=3指定翻开形式adModeRead=1,adModeWrite=2,adModeReadWrite=3
sCome.Open
sCome.Writerequest.BinaryRead(request.TotalBytes)

sCome.Position=0
binData=sCome.Read

response.BinaryWritebinData调试用:显现提交的一切数据
response.Write"<hr>"调试用

setsGo=server.CreateObject("adodb.stream")
sGo.Type=1
sGo.Mode=3
sGo.Open

posB=1
posB=instrb(posB,binData,binCrlf)
posE=instrb(posB+1,binData,binCrlf)
response.WriteposB&"|"&posE&"<br>"

sCome.Position=posB+1
sCome.CopyTosGo,posE-posB-2
sGo.Position=0
sGo.Type=2
sGo.Charset="gb2312"
strData=sGo.ReadText
sGo.Close

response.WritestrData&"<hr>"

posSB=1
posSB=instr(posSB,strData,"filename=""")+len("filename=""")
posSE=instr(posSB,strData,"""")

ifposSE>posSBthen
strPath=mid(strData,posSB,posSE-posSB)
response.Write"当地路径:"&strPath&"<br>"
response.Write"文件名:"&getFileNamefromPath(strPath)&"<br>"

posB=posE
posE=instrb(posB+1,binData,binCrlf)
response.WriteposB&"|"&posE&"<br>"

sGo.Type=1
sGo.Mode=3
sGo.Open
sCome.Position=posB
sCome.CopyTosGo,posE-posB-1
sGo.Position=0
sGo.Type=2
sGo.Charset="gb2312"
strData=sGo.ReadText
sGo.Close

strContentType=mid(strData,16)此处由于流动的,以是省略查找:-)
response.Write"图片范例:"&strContentType&"<hr>"

posB=posE+2
posE=instrb(posB+1,binData,binCrlf)
response.WriteposB&"|"&posE&"<br>"

sGo.Type=1
sGo.Mode=3
sGo.Open
sCome.Position=posB+1
sCome.CopyTosGo,posE-posB-2

sGo.Position=0
strData=sGo.Read
sGo.Close

response.Writelenb(strData)&"<br>"

dimcn,rs,sql
setcn=server.CreateObject("adodb.connection")
cn.Opencnstr
setrs=server.CreateObject("adodb.recordset")
sql="select*fromtblImage"
rs.Opensql,cn,1,3
rs.AddNew
rs.Fields("content-type").Value=strContentType
rs.Fields("image").AppendChunkstrData
rs.Update
rs.Close
setrs=nothing
&nbs
ASP在国内异常流行,因为国内大多使用的是盗版的Windows和盗版的SQLServer,而ASP+COM+SQLServer实际上也是一种不错的搭配,其性能也不输于PHP+MYSQL,特别是Windows系统和SQLServer都有图形界面,比APACHE和MYSQL易于维护,因此对于不重视知识产权的国家来说也是一种不错的选择。

精灵巫婆 发表于 2015-1-20 11:51:13

以HTML语言整合(HTML负责界面上,ASP则负责功能上)形成一个B/S(浏览器/服务器)模式的网页程序。

再见西城 发表于 2015-1-25 16:26:47

另外因为asp需要使用组件,所以了解一点组件的知识(ADODB也是组件)

若相依 发表于 2015-1-31 20:32:03

下载一个源代码,然后再下载一个VBScript帮助,在源代码中遇到不认识的函数或是其他什么程序,都可以查帮助进行解决,这样学习效率很高。

变相怪杰 发表于 2015-2-2 11:02:54

ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp),它可以看作是VC和Java的混合体吧。

admin 发表于 2015-2-7 18:14:16

ASP主要是用好六个对象,其实最主要的是用好其中两个:response和request,就可以随心所欲地控制网页变换和响应用户动作了。

若天明 发表于 2015-2-22 20:24:58

ASP的语言不仅仅只是命令格式差不多,而是包含在<%%>之内的命令完全就是VB语法。虽然ASP也是做为单独的一个技术来提出的,但他就是完全继承了VB所有的功能。

老尸 发表于 2015-3-7 02:18:00

我认为比较好的方法是找一些比较经典的例子,每个例子比较集中一种编程思想而设计的。

小魔女 发表于 2015-3-14 04:05:20

哪些内置对象是可以跳过的,或者哪些属性和方法是用不到的?

冷月葬花魂 发表于 2015-3-21 00:02:17

代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。
页: [1]
查看完整版本: ASP网页设计实例详解ASP的上传功效