繁体中文
设为首页
加入收藏
当前位置:ASP技术首页 >> ASP基础 >> 不用组件实现上载功能(英文NT)

不用组件实现上载功能(英文NT)

2006-03-15 08:00:00  作者:  来源:互联网  浏览次数:0  文字大小:【】【】【
简介:'---- file name /upaoad.ASP/

'---- file name /upaoad.ASP/

<%

Public Function BuildUploadRequest(strRequestBin)

Dim PosBeg, PosEnd, boundary, boundaryPos

'Get the boundary

PosBeg = 1

PosEnd = InstrB(PosBeg,strRequestBin,getByteString(chr(13)))

boundary = MidB(strRequestBin,PosBeg,PosEnd-PosBeg)

boundaryPos = InstrB(1,strRequestBin,boundary)

'Get all data inside the boundaries

Do until (boundaryPos = InstrB(strRequestBin,boundary & getByteString("--")))

'Members variable of objects are put in a dictionary object

Dim UploadControl

Set UploadControl = CreateObject("Scripting.Dictionary")

Dim Pos, Name

'Get an object name

Pos = InstrB(boundaryPos,strRequestBin,getByteString("Content-Disposition"))

Pos = InstrB(Pos,strRequestBin,getByteString("name="))

PosBeg = Pos + Len("name=") + 1

PosEnd = InstrB(PosBeg,strRequestBin,getByteString(chr(34)))

Name = getString(MidB(strRequestBin,PosBeg,PosEnd-PosBeg))

Dim PosFile, PosBound, ContentType, Value

'Test if object is of file type

PosFile = InstrB(BoundaryPos,strRequestBin,getByteString("filename="))

PosBound = InstrB(PosEnd,strRequestBin,boundary)

If PosFile <> 0 AND PosFile < PosBound Then

'Get FilePathName of the file

PosBeg = PosFile + Len("filename=") + 1

PosEnd = InstrB(PosBeg,strRequestBin,getByteString(chr(34)))

FilePathName = getString(MidB(strRequestBin,PosBeg,PosEnd-PosBeg))

'Add filename(with path) to dictionary object

UploadControl.Add "FilePathName", FilePathName

'Get Content-Type of the file

Pos = InstrB(PosEnd,strRequestBin,getByteString("Content-Type:"))

PosBeg = Pos + Len("Content-Type:") + 1

PosEnd = InstrB(PosBeg,strRequestBin,getByteString(chr(13)))

ContentType = getString(MidB(strRequestBin,PosBeg,PosEnd-PosBeg))

'Add content-type to dictionary object

UploadControl.Add "ContentType",ContentType

'Get content of object

PosBeg = PosEnd + 4

PosEnd = InstrB(PosBeg,strRequestBin,boundary)-2

Value = MidB(strRequestBin,PosBeg,PosEnd-PosBeg)

Else

'Get content of object

Pos = InstrB(Pos,strRequestBin,getByteString(chr(13)))

PosBeg = Pos + 4

PosEnd = InstrB(PosBeg,strRequestBin,boundary)-2

Value = getString(MidB(strRequestBin,PosBeg,PosEnd-PosBeg))

End If

'Add content to dictionary object

UploadControl.Add "Value" , Value

'Add dictionary object to main dictionary

Set UploadRequest(Name) = UploadControl

'Loop to next object

BoundaryPos = InstrB(BoundaryPos+LenB(boundary),strRequestBin,boundary)

Loop

End Function

'String to byte string conversion

Public Function getByteString(strString)

Dim intCount

getByteString = ""

For intCount = 1 to Len(strString)

getByteString = getByteString & chrB(AscB(Mid(strString,intCount,1)))

Next

End Function

'Byte string to string conversion

Public Function getString(strString)

Dim intCount

getString = ""

For intCount = 1 to LenB(strString)

getString = getString & chr(AscB(MidB(strString,intCount,1)))

Next

End Function

%>

责任编辑:admin
相关文章