WEB开发网
开发学院WEB开发ASP 不用组件实现上载功能 阅读

不用组件实现上载功能

 2001-03-27 10:18:07 来源:WEB开发网   
核心提示:' file name /upaoad.asp/<%Public Function BuildUploadRequest(strRequestBin)Dim PosBeg, PosEnd, boundary, boundaryPos'Get the boundaryPosBeg = 1PosEnd
'---- 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
%>

Tags:不用 组件 实现

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接