加入收藏在线咨询
位置:主页 >

菲赢国际登陆:时间、空间性能极优的asp无组件上传类

作者:dudu时间:11月23日浏览:


在解码速率方面,化境 2.0 已经异常高了,然则,它还存在以下两个问题:

1、用Data_5xsoft.WriteRequest.BinaryRead(Request.TotalBytes)一次读取整个数据,以及用RequestData =Data_5xsoft.Read 一次掏出整个数据,在上传数据过大年夜时,会因为内存不够,导致上传掉败,这里应该采纳分段读取要领。

2、保存数据时,必要先从Data_5xsoft中复制到一个临时流中,在保存大年夜文件时,必要两倍的存储资本,在单机状态下测试,可以发明保存光阴随文件尺寸急剧增长,以致跨越上传和菲赢国际登陆解码光阴。

本人所写的这个类,采纳在解码菲赢国际登陆的历程中,逐块读取(留意:块的大年夜小与速率不成正比,单机测试注解,64K的块比1M的块快得多)的措施,办理问题1,同时采纳对通俗数据,写入事情流;对文件内容,直接写入文件自身的流的要领,办理问题2。

代码如下,用法类似于化境:

Server.ScriptTimeOut = 600

Class QuickUpload

Private FForm, FFile, Upload_Stream, ConvertStream

property get Form

set Form = FForm

end property

property get File

set File = FFile

end property

Private Sub Class_Initialize

dim iStart, iEnd, boundary, FieldName, FileName, ContentType, ItemValue, theFile, LineEnd

set FForm=CreateObject("Scripting.Dictionary")

set FFile=CreateObject("Scripting.Dictionary")

set Upload_Stream=CreateObject("Adodb.Stream")

Upload_Stream.mode=3

Upload_Stream.type=1

Upload_Stream.open

set ConvertStream = Server.Cre菲赢国际登陆ateObject("adodb.stream")

ConvertStream.Mode =3

ConvertStream.Charset="GB2312"

if Request.TotalBytes0 then

if StrComp(left(Line,pos-1),"Content-Disposition"菲赢国际登陆,1)=0 then

’取表单项名称

FieldName = ExtractValue(Line,pos+1,"name")

’取文件名称

FileName = ExtractValue(Line,pos+1,"filename")

’删除文件路径

FileName = Mid(FileName,InStrRev(FileName, "\")+1)

elseif StrComp(left(Line,pos-1),"Content-Type",1)=0 th菲赢国际登陆en

’取文件类型

ContentType = trim(mid(Line,pos+1))

end if

end if

loop

’取表单项内容

if FileName

电话:13866999966
联系人:王经理
Q Q:88996699
邮箱:admin@dede58.com
地址:中国XX省XX市XX路XX号