#1
  1. No Profile Picture
    Junior Member
    Devshed Newbie (0 - 499 posts)

    Join Date
    Oct 2003
    Location
    India
    Posts
    1
    Rep Power
    0

    Angry ASP.Net How Can I Upload File?


    any body please help me how to upload files in my site

    can u give me code or help me

    Comments on this post

    • Gran Roguismo agrees
  2. #2
  3. No Profile Picture
    Junior Member
    Devshed Newbie (0 - 499 posts)

    Join Date
    Jul 2003
    Location
    Rochester, NY
    Posts
    21
    Rep Power
    0
    This is the script I use for uploading to IIS:

    dim destDir, theOperation, destName, deleteDir

    dim completeFilename, filedir, foundName, foundDir, myFSO, TSO, folder, item, indexOfDelim, MyFile

    ' used to track various positions
    dim PosB, PosBBound, PosEBound, PosEHead, PosBFld, PosEFld

    ' these handle the data
    dim Boundary, BBoundary, PartBHeader, PartAHeader, PartContent, PartContent2, Binary

    ' for writing and converting
    dim fso, fle, rst, DataString, FileName

    ' various other
    dim I, Length, ContType, PartName, LastPart, BCrlf, PartContentLength

    ' ado constants
    const adLongVarBinary = 205
    const adLongVarchar = 201
    const ForWriting = 2 ' Input OutPut mode
    const Create = True

    ' must be submitted using POST
    foundDir = False
    foundName = False

    If Request.ServerVariables("REQUEST_METHOD") = "POST" Then

    ContType = Request.ServerVariables("HTTP_Content_Type")
    ' must be "multipart/form-data"
    If LCase(Left(ContType, 19)) = "multipart/form-data" Then
    PosB = InStr(LCase(ContType), "boundary=") 'get boundary
    If PosB > 0 Then Boundary = Mid(ContType, PosB + 9) 'we have one

    'bugfix IE5.01 - double header
    PosB = InStr(LCase(ContType), "boundary=")
    If PosB > 0 then
    PosB = InStr(Boundary, ",")
    If PosB > 0 Then Boundary = Left(Boundary, PosB - 1)
    end if

    Length = CLng(Request.ServerVariables("HTTP_Content_Length")) 'Get Content-Length header
    End If

    If Length > 0 And Boundary <> "" Then
    Boundary = "--" & Boundary

    ' get request, binary
    Binary = Request.BinaryRead(Length)

    ' convert boundry to binary
    For I=1 to len(Boundary)
    BBoundary = BBoundary & ChrB(Asc(Mid(Boundary,I,1)))
    Next

    ' binary crlf
    BCrlf = ChrB(Asc(vbCr)) & ChrB(Asc(vbLf))

    ' get begin and end of first boundary
    PosBBound = InStrB(Binary, BBoundary)
    PosEBound = InStrB(PosBBound + LenB(BBoundary), Binary, BBoundary, 0)

    ' keep doing until we had them all
    Do While (PosBBound > 0 And PosEBound > 0)

    ' get position of the end of the header
    PosEHead = InStrB(PosBBound + LenB(BBoundary), Binary, BCrlf & BCrlf)

    ' get content of header and convert to string
    PartBHeader = MidB(Binary, PosBBound + LenB(BBoundary) + 2, PosEHead - PosBBound - LenB(BBoundary) - 2)
    PartAHeader = ""
    For I=1 to lenb(PartBHeader)
    PartAHeader = PartAHeader & Chr(AscB(MidB(PartBHeader,I,1)))
    Next

    ' make sure we end it with ;
    If Right(PartAHeader,1) <> ";" Then PartAHeader = PartAHeader & ";"

    ' get content of this part
    PartContent = MidB(Binary, PosEHead + 4, PosEBound - (PosEHead + 4) - 2)

    ' get name of part
    PosBFld = Instr(lcase(PartAHeader),"name=")
    If PosBFld > 0 Then
    ' name found
    PosEFld = Instr(PosBFld,lcase(PartAHeader),";")
    If PosEFld > 0 Then
    ' well-formed name header
    PartName = Mid(PartAHeader,PosBFld+5,PosEFld-PosBFld-5)
    end if
    ' chop of leading and trailing "'s
    Do Until Left(PartName,1) <> """"
    PartName = Mid(PartName,2)
    Loop
    Do Until Right(PartName,1) <> """"
    PartName = Left(PartName,Len(PartName)-1)
    Loop
    end if

    ' get file name of part (if any)
    PosBFld = Instr(lcase(PartAHeader),"filename=""")
    If PosBFld > 0 Then
    ' content header found
    PosEFld = Instr(PosBFld + 10,lcase(PartAHeader),"""")
    If PosEFld > 0 Then
    ' well-formed content header
    FileName = Mid(PartAHeader,PosBFld+10,PosEFld-PosBFld-10)
    end if
    ' chop of leading and trailing "'s
    Do Until Left(FileName,1) <> """"
    FileName = Mid(FileName,2)
    Loop
    Do Until Right(FileName,1) <> """"
    FileName = Left(FileName,Len(FileName)-1)
    Loop
    Else
    FileName = ""
    end if

    ' do conversion of binary to regular data
    ' at the end, datastring will contain 'readable' data
    ' is this wide-byte binary data?
    if vartype(PartContent) = 8 then
    ' need to do some conversion
    Set rst = CreateObject("ADODB.Recordset")
    PartContentLength = LenB(PartContent)
    if PartContentLength > 0 then
    ' data, so add to recordset to speed up conversion
    rst.Fields.Append "data", adLongVarBinary, PartContentLength
    rst.Open
    rst.AddNew
    rst("data").AppendChunk PartContent & ChrB(0)
    rst.Update
    PartContent2 = rst("data").GetChunk(PartContentLength)
    rst.close
    set rst = nothing
    else
    ' no data?
    PartContent2 = ChrB(0)
    End If
    else
    ' no need for conversion
    PartContent2 = PartContent
    end if

    PartContentLength = LenB(PartContent2)
    if PartContentLength > 0 then
    ' we have data to convert
    Set rst = CreateObject("ADODB.Recordset")
    rst.Fields.Append "data", adLongVarChar, PartContentLength
    rst.Open
    rst.AddNew
    rst("data").AppendChunk PartContent2
    rst.Update
    DataString = rst("data")
    rst.close
    set rst = nothing
    Else
    ' nothing to convert
    dataString = ""
    End If

    ' conversion has been done, now what to do with it

    If FileName <> "" Then
    ' we have a file, let's save it to disk

    FileName = Mid(Filename,InstrRev(FileName,"\")+1)

    ' open a file (textstream)
    set fso = Server.CreateObject("Scripting.Filesystemobject")
    'set fle = fso.CreateTextFile(server.MapPath(FileName))
    set fle = fso.CreateTextFile(server.MapPath(FileName))
    set fle = fso.CreateTextFile(completeFilename)

    ' write the data
    fle.write DataString
    fle.close
    ' cleanup
    set fle = nothing
    set fso = nothing

    ' give notification
    'Response.Write "<br>Uploaded file " & Partname & " - " & FileName & "(" & Len(Datastring) & " bytes)"

    Comments on this post

    • Gran Roguismo agrees

IMN logo majestic logo threadwatch logo seochat tools logo