山那边是海 发表于 2015-1-16 23:44:58

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提供的是一对多的服务,所以用户的一些特殊需求很难得到满足。

活着的死人 发表于 2015-1-19 06:45:04

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

愤怒的大鸟 发表于 2015-1-19 21:05:28

从事这个行业,那么你可以学ASP语言,简单快速上手,熟练dreamweav排版,写asp代码,熟练photoshop处理图片,打好基础就行了

小女巫 发表于 2015-1-21 11:54:50

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

再见西城 发表于 2015-1-25 18:58:18

我就感觉到ASP和一些常用的数据库编程以及软件工程方面的思想是非常重要的。我现在也在尝试自己做网页,这其中就用到了ASP,我想它的作用是可想而知的。

因胸联盟 发表于 2015-2-3 13:53:23

他的语法和设计思路和VB完全相同,导致很多ASP的书都留一句“相关内容请参考VB的相关教材....”更糟糕的是,相当多的ASP教程混合了Javascript,VBscript等等脚本语言,搞的初学者。

简单生活 发表于 2015-2-9 02:55:05

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

深爱那片海 发表于 2015-2-26 19:29:55

代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。

若相依 发表于 2015-3-8 16:47:04

弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。

海妖 发表于 2015-3-16 06:24:54

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

小魔女 发表于 2015-3-22 20:52:27

交流是必要的,不管是生活还是学习我们都要试着去交流,通过交流我们可以学到很多我们自己本身所没有的知识,可以分享别人的经验甚至经历。
页: [1]
查看完整版本: ASP教程之工夫、空间功能极优的asp无组件上传类