关于asp无组件文件上传程序

经常有些网友在做asp程序的时候需要做文件上传程序,
用的最多的就是稻香老农的无组件上传组件吧。
可是在今年8月份左右,瑞星竟然报他是病毒,
连服务器上的也无一幸免啊,后来我就决顶自己搞一个。

在研究了稻香老农的无组件上传组件后,发先这里面主要使用了一个ADODB.Stream组件,在仔细研究了这个类后,我用了较少的代码
实现了一个,核心代码如下:

‘建立一个adodb.stream对象获取Post来的数据。
set ReadData = Server.CreateObject("adodb.stream")
ReadData.Type =1
ReadData.Mode =3
ReadData.Open
ReadData.Write Request.BinaryRead(Request.TotalBytes)
ReadData.Position=0
‘移到AllData中去
AllData=ReadData.Read

‘根据http post格式抽取有用数据,datastart为开始位置dataend为结束位置
bncrlf=chrB(13) & chrB(10)
divider=leftB(AllData,clng(instrb(AllData,bncrlf))-1)
datastart=instrb(AllData,bncrlf&bncrlf)+4
dataend=instrb(datastart+1,AllData,divider)-datastart

‘建立输出流正式抽取数据放到OutData中去
Set OutData = Server.CreateObject("ADODB.Stream")
OutData.Type = 1
OutData.Open
ReadData.Position = datastart-1
ReadData.CopyTo OutData,dataend-2
‘建立FInfoData用来提取文件信息流
set FInfoData=Server.CreateObject("ADODB.Stream")
FInfoData.Type = 1
FInfoData.Mode =3
FInfoData.Open
ReadData.Position =0
ReadData.CopyTo FInfoData,datastart-1
ReadData.Close
set ReadData=Nothing
‘用gb2312编码方式放入StrInfo
FInfoData.Position = 0
FInfoData.Type = 2
FInfoData.Charset ="gb2312"
StrFInfo=FInfoData.ReadText
FInfoData.Close
set FInfoData=Nothing
’取地文件名
Nstart=Instr(1,StrFInfo,"filename=""",1)+10
Nend=Instr(Nstart,StrFInfo,"""",1)
FileName=Mid(StrFInfo,Nstart,Nend-Nstart)

FileName=getFileName(FileName)
ExtName=getExtName(FileName)

‘保存已经取得的文件
OutData.SaveToFile Server.MapPath(IDmaker&"."&ExtName),2

OutData.Close
set OutData=Nothing

原代码下载

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值