日期:2013-08-05  浏览次数:21349 次

<%
'判断是否添加了文件
Dim ulFileName, ulResult

ulSaveToPath="/upload" '保存文件路径
ulMaxFileSize = 1000000 '文件大小限制 1000,000

ulResult = DoUploadFile(ulMaxFileSize, ulFileName)

Function DoUploadFile(MaxUpLoadSize, FileName)
Dim Upload, File, formName, formPath, FileExt
FileName = ""
Set Upload = New upload_yfly '建立上传对象

IF IsNull(Upload.File) THEN
DoUploadFile= 6
EXIT Function
END IF

IF Upload.File.Count = 0 Then
DoUploadFile= 5 'No File uploaded
Else
Set File = Upload.File("ulFileToUpload")
If File.FileName = "" Then
DoUploadFile= 4 'No File uploaded
Else
'上传文件不是空的时候处理上传
'在目录后加(/)
formPath=upload.Form("ulSaveFilePath")

If Right(formPath, 1) <> "/" Then
formPath = formPath & "/"
End If

If File.FileSize < 100 Then
DoUploadFile= 1 '文件大小太小
Exit Function
End If

If File.FileSize > MaxUpLoadSize Then
DoUploadFile= 2 '文件大小超过了限制
Exit Function
End If

FileExt = LCase(Right(File.FileName, 4))
uploadsuc = False

If Not (FileExt = ".gif" Or FileExt = ".jpg") Then
DoUploadFile= 3 '文件格式不正确
Exit Function
End If

Randomize
ranNum = Int(90000 * Rnd) + 10000
'文件名
FileName = formPath & Year(Now) & Month(Now) & Day(Now) & Hour(Now) & Minute(Now) & Second(Now) & ranNum & FileExt

If File.FileSize > 0 Then ''如果 FileSize > 0 说明有文件数据
File.SaveAs server.mappath(FileName) ''保存文件
End If
DoUploadFile= 0
End If
Set File = Nothing
End If
Set Upload = Nothing '删除此对象
End Function

%>


<SCRIPT RUNAT="SERVER" LANGUAGE="VBSCRIPT">

dim upfile_yfly_Stream

Class upload_yfly

dim Form,File,Version

Private Sub Class_Initialize
dim iStart,iFileNameStart,iFileNameEnd,iEnd,vbEnter,iFormStart,iFormEnd,theFile
dim strDiv,mFormName,mFormValue,mFileName,mFileSize,mFilePath,iDivLen,mStr
Version=""
File = NULL
Form = Null
upfile_yfly_Stream=NULL
if Request.TotalBytes<1 then Exit Sub
set Form=CreateObject("Scripting.Dictionary")
set File=CreateObject("Scripting.Dictionary")
set upfile_yfly_Stream=CreateObject("Adodb.Stream")
upfile_yfly_Stream.mode=3
upfile_yfly_Stream.type=1
upfile_yfly_Stream.open
upfile_yfly_Stream.write Request.BinaryRead(Request.TotalBytes)

vbEnter=Chr(13)&Chr(10)
iDivLen=inString(1,vbEnter)+1
strDiv=subString(1,iDivLen)
iFormStart=iDivLen
iFormEnd=inString(iformStart,strDiv)-1
while iFormStart < iFormEnd
iStart=inString(iFormStart,"name=""")
iEnd=inString(iStart+6,"""")
mFormName=subString(iStart+6,iEnd-iStart-6)
iFileNameStart=inString(iEnd+1,"filename=""")
if iFileNameStart>0 and iFileNameStart<iFormEnd then
iFileNameEnd=inString(iFileNameStart+10,"""")
mFileName=subString(iFileNameStart+10,iFileNameEnd-iFileNameStart-10)
iStart=inString(iFileNameEnd+1,vbEnter&vbEnter)
iEnd=inString(iStart+4,vbEnter&strDiv)
if iEnd>iStart then
mFileSize=iEnd-iStart-4
e