ASP教程之工夫、空间功能极优的asp无组件上传类
使用filesystemobject,可以对服务器上的文件进行操作,浏览、复制、移动、删除等。有ado的支持,asp对数据库的操作非常得心应手。你甚至可以像使用本地数据库那样,管理远程主机上的数据库,对表格、记录进行各种操作。上传|无组件|功能|上传|无组件|功能在解码速率方面,化境2.0已十分高了,可是,它还存在以下两个成绩:1、用Data_5xsoft.WriteRequest.BinaryRead(Request.TotalBytes)一次读取全体数据,和用RequestData=Data_5xsoft.Read一次掏出全体数据,在上传数据过年夜时,会因为内存不敷,招致上传失利,这里应当接纳分段读取体例。
2、保留数据时,必要先从Data_5xsoft中复制到一个一时流中,在保留年夜文件时,必要两倍的存储资本,在单机形态下测试,能够发明保留工夫随文件尺寸急剧增加,乃至凌驾上传息争码工夫。
自己所写的这个类,接纳在解码的过程当中,逐块读取(注重:块的巨细与速率不成反比,单机测试标明,64K的块比1M的块快很多)的办法,办理成绩1,同时接纳对一般数据,写进事情流;对文件内容,间接写进文件本身的流的体例,办理成绩2。
代码以下,用法相似于化境:
Server.ScriptTimeOut=600
ClassQuickUpload
PrivateFForm,FFile,Upload_Stream,ConvertStream
propertygetForm
setForm=FForm
endproperty
propertygetFile
setFile=FFile
endproperty
PrivateSubClass_Initialize
dimiStart,iEnd,boundary,FieldName,FileName,ContentType,ItemValue,theFile,LineEnd
setFForm=CreateObject("Scripting.Dictionary")
setFFile=CreateObject("Scripting.Dictionary")
setUpload_Stream=CreateObject("Adodb.Stream")
Upload_Stream.mode=3
Upload_Stream.type=1
Upload_Stream.open
setConvertStream=Server.CreateObject("adodb.stream")
ConvertStream.Mode=3
ConvertStream.Charset="GB2312"
ifRequest.TotalBytes<1thenExitSub
’dStart=CDbl(Time)
’查找第一个界限
iStart=Search(Upload_Stream,ChrB(13)&ChrB(10),1)
’取界限串
boundary=subString(1,iStart-1,false)
’不是停止界限,则轮回
dowhileStrComp(subString(iStart,2,false),ChrB(13)&ChrB(10))=0
iStart=iStart+2
’取表单项信息头
dowhiletrue
iEnd=Search(Upload_Stream,ChrB(13)&ChrB(10),iStart)
’分化信息头
line=subString(iStart,iEnd-iStart,true)
’挪动地位
iStart=iEnd+2
ifLine=""thenExitdo
pos=instr(line,":")
ifpos>0then
ifStrComp(left(Line,pos-1),"Content-Disposition",1)=0then
’取表单项称号
FieldName=ExtractValue(Line,pos+1,"name")
’取文件称号
FileName=ExtractValue(Line,pos+1,"filename")
’删除文件路径
FileName=Mid(FileName,InStrRev(FileName,"")+1)
elseifStrComp(left(Line,pos-1),"Content-Type",1)=0then
’取文件范例
ContentType=trim(mid(Line,pos+1))
endif
endif
loop
’取表单项内容
ifFileName""then
’新建文件内容
settheFile=newFileInfo
theFile.InitFileName,ContentType
’文件流内容移到文件流中
MoveDataUpload_Stream,theFile.Stream,iStart
’上传数据间接传进文件流,能够削减文件存储工夫
iEnd=Search(theFile.Stream,boundary,1)
’后继数据移进事情流
MoveDatatheFile.Stream,Upload_Stream,iEnd-2
’
FFile.addFieldName,theFile
’挪动地位
iStart=iStart+2+LenB(boundary)
else
’查找界限
iEnd=Search(Upload_Stream,boundary,iStart)
’取表单项内容
ItemValue=subString(iStart,iEnd-2-iStart,true)
’
ifFForm.Exists(FieldName)then
FForm.Item(FieldName)&nb</p>由于ASP提供的是一对多的服务,所以用户的一些特殊需求很难得到满足。 下载一个源代码,然后再下载一个VBScript帮助,在源代码中遇到不认识的函数或是其他什么程序,都可以查帮助进行解决,这样学习效率很高。 从事这个行业,那么你可以学ASP语言,简单快速上手,熟练dreamweav排版,写asp代码,熟练photoshop处理图片,打好基础就行了 ASP主要是用好六个对象,其实最主要的是用好其中两个:response和request,就可以随心所欲地控制网页变换和响应用户动作了。 我就感觉到ASP和一些常用的数据库编程以及软件工程方面的思想是非常重要的。我现在也在尝试自己做网页,这其中就用到了ASP,我想它的作用是可想而知的。 他的语法和设计思路和VB完全相同,导致很多ASP的书都留一句“相关内容请参考VB的相关教材....”更糟糕的是,相当多的ASP教程混合了Javascript,VBscript等等脚本语言,搞的初学者。 下载一个源代码,然后再下载一个VBScript帮助,在源代码中遇到不认识的函数或是其他什么程序,都可以查帮助进行解决,这样学习效率很高。 代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。 弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。 以HTML语言整合(HTML负责界面上,ASP则负责功能上)形成一个B/S(浏览器/服务器)模式的网页程序。 交流是必要的,不管是生活还是学习我们都要试着去交流,通过交流我们可以学到很多我们自己本身所没有的知识,可以分享别人的经验甚至经历。
页:
[1]