您现在的位置: 军旅同心 >> 读书赏析 >> 学习园地 >> 电脑网络 >> 技术文章 >> 文章正文
不用组件实现上载功能(1)
作者:采集员 文章来源:来源于网络 点击数: 更新时间:2005-9-10 13:13:49
'---- 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
%>


 
免责声明:作品版权归所属媒体与作者所有!!本站刊载此文不代表同意其说法或描述,仅为提供更多信息。如果您认为我们侵犯了您的版权,请告知!本站立即删除。有异议请联系我们。
文章录入:烟灰缸    责任编辑:烟灰缸 
网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
| 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告 | 管理登录 |