Cookie question

Author Message
milkman128

  • Total Posts : 1
  • Scores: 0
  • Reward points : 0
  • Joined: 11/29/2008
  • Status: offline
Cookie question Saturday, November 29, 2008 7:16 AM (permalink)
0




I am trying to get a cookie to be read on an upload page so the cookie text value becomes a directory

Dim base_directory, max_bytes, dir

dir=Request.Cookies("directory")

'The directory where the files will be stored
base_directory = "c:\temp\" + dir


'the maxim upload size
max_bytes = 104857600

If Request.TotalBytes > max_bytes Then
    Response.Status = "500 Max upload size exceeded"
    Response.End
End If

function URLDecode(str)
    dim re
    set re = new RegExp

    str = Replace(str, "+", " ")
   
    re.Pattern = "%([0-9a-fA-F]{2})"
    re.Global = True
    URLDecode = re.Replace(str, GetRef("URLDecodeHex"))
end function

function URLDecodeHex(match, hex_digits, pos, source)
    URLDecodeHex = chr("&H" & hex_digits)
end function

Class FileUploader
    Public  Files
    Private mcolFormElem

    Private Sub Class_Initialize()
        Set Files = Server.CreateObject("Scripting.Dictionary")
        Set mcolFormElem = Server.CreateObject("Scripting.Dictionary")
    End Sub
   
    Private Sub Class_Terminate()
        If IsObject(Files) Then
            Files.RemoveAll()
            Set Files = Nothing
        End If
        If IsObject(mcolFormElem) Then
            mcolFormElem.RemoveAll()
            Set mcolFormElem = Nothing
        End If
    End Sub

    Public Property Get Form(sIndex)
        Form = ""
        If mcolFormElem.Exists(LCase(sIndex)) Then Form = mcolFormElem.Item(LCase(sIndex))
    End Property

    Public Default Sub Upload()
        Dim biData, sInputName
        Dim nPosBegin, nPosEnd, nPos, vDataBounds, nDataBoundPos
        Dim nPosFile, nPosBound

        biData = Request.BinaryRead(Request.TotalBytes)
        nPosBegin = 1
        nPosEnd = InstrB(nPosBegin, biData, CByteString(Chr(13)))
       
        If (nPosEnd-nPosBegin) <= 0 Then Exit Sub
         
        vDataBounds = MidB(biData, nPosBegin, nPosEnd-nPosBegin)
        nDataBoundPos = InstrB(1, biData, vDataBounds)
       
        Do Until nDataBoundPos = InstrB(biData, vDataBounds & CByteString("--"))
           
            nPos = InstrB(nDataBoundPos, biData, CByteString("Content-Disposition"))
            nPos = InstrB(nPos, biData, CByteString("name="))
            nPosBegin = nPos + 6
            nPosEnd = InstrB(nPosBegin, biData, CByteString(Chr(34)))
            sInputName = CWideString(MidB(biData, nPosBegin, nPosEnd-nPosBegin))
            nPosFile = InstrB(nDataBoundPos, biData, CByteString("filename="))
            nPosBound = InstrB(nPosEnd, biData, vDataBounds)
           
            If nPosFile <> 0 And  nPosFile < nPosBound Then
                Dim oUploadFile, sFileName
                Set oUploadFile = New UploadedFile
               
                nPosBegin = nPosFile + 10
                nPosEnd =  InstrB(nPosBegin, biData, CByteString(Chr(34)))
                sFileName = CWideString(MidB(biData, nPosBegin, nPosEnd-nPosBegin))
                oUploadFile.FileName = URLDecode(Right(sFileName, Len(sFileName)-InStrRev(sFileName, "\")))

                nPos = InstrB(nPosEnd, biData, CByteString("Content-Type:"))
                nPosBegin = nPos + 14
                nPosEnd = InstrB(nPosBegin, biData, CByteString(Chr(13)))
               
                oUploadFile.ContentType = CWideString(MidB(biData, nPosBegin, nPosEnd-nPosBegin))
               
                nPosBegin = nPosEnd+4
                nPosEnd = InstrB(nPosBegin, biData, vDataBounds) - 2
                oUploadFile.FileData = MidB(biData, nPosBegin, nPosEnd-nPosBegin)
               
                If oUploadFile.FileSize > 0 Then Files.Add LCase(oUploadFile.FileName), oUploadFile
            Else
                nPos = InstrB(nPos, biData, CByteString(Chr(13)))
                nPosBegin = nPos + 4
                nPosEnd = InstrB(nPosBegin, biData, vDataBounds) - 2
                If Not mcolFormElem.Exists(LCase(sInputName)) Then mcolFormElem.Add LCase(sInputName), CWideString(MidB(biData, nPosBegin, nPosEnd-nPosBegin))
            End If

            nDataBoundPos = InstrB(nDataBoundPos + LenB(vDataBounds), biData, vDataBounds)
        Loop
    End Sub

    'String to byte string conversion
    Private Function CByteString(sString)
        Dim nIndex
        For nIndex = 1 to Len(sString)
           CByteString = CByteString & ChrB(AscB(Mid(sString,nIndex,1)))
        Next
    End Function

    'Byte string to string conversion
    Private Function CWideString(bsString)
        Dim nIndex
        CWideString =""
        For nIndex = 1 to LenB(bsString)
           CWideString = CWideString & Chr(AscB(MidB(bsString,nIndex,1)))
        Next
    End Function
End Class

Function MultiByteToBinary(MultiByte)
  Dim RS, LMultiByte, Binary
  Const adLongVarBinary = 205
  Set RS = CreateObject("ADODB.Recordset")
  LMultiByte = LenB(MultiByte)
  If LMultiByte>0 Then
    RS.Fields.Append "mBinary", adLongVarBinary, LMultiByte
    RS.Open
    RS.AddNew
      RS("mBinary").AppendChunk MultiByte & ChrB(0)
    RS.Update
    Binary = RS("mBinary").GetChunk(LMultiByte)
  End If
  MultiByteToBinary = Binary
End Function

Function SaveBinaryData(FileName, ByteArray)
  Const adTypeBinary = 1
  Const adSaveCreateOverWrite = 2
 
  Dim BinaryStream
  Set BinaryStream = CreateObject("ADODB.Stream")
 
  BinaryStream.Type = adTypeBinary
 
  BinaryStream.Open
  BinaryStream.Write ByteArray
 
  BinaryStream.SaveToFile FileName, adSaveCreateOverWrite
End Function

Class UploadedFile
    Public ContentType
    Public FileName
    Public FileData
   
    Public Property Get FileSize()
        FileSize = LenB(FileData)
    End Property

    Public Sub SaveToDisk(sPath, formDir)
        Dim oFS, oFile
        Dim nIndex
   
        FileName = Replace(FileName, "/", "\")

        If sPath = "" Or FileName = "" Then Exit Sub
        If Mid(sPath, Len(sPath)) <> "\" Then sPath = sPath & "\"
   
        Set oFS = Server.CreateObject("Scripting.FileSystemObject")
       
        FileName = formDir & "\" & FileName
        Dim folders, numFolders
        folders = Split(FileName, "\")
        numFolders = UBound(folders)
        Dim i, j, folderTmp
        i = 0
       
        While i < numFolders
            j = 1
            folderTmp = sPath & folders(0)
            While j <= i
                folderTmp = folderTmp & "\" & folders(j)
                j = j + 1
            Wend

            If Not oFS.FolderExists(folderTmp) Then oFS.CreateFolder(folderTmp)
            i = i + 1
        Wend

        FileName = sPath & FileName

        SaveBinaryData FileName, MultiByteToBinary(FileData)

    End Sub
End Class

' Create the FileUploader
Dim Up, File

Set Up = New FileUploader

Up.Upload()

' Save files to disk
For Each File in Up.Files.Items
    File.SaveToDisk base_directory, Replace(Up.Form("directory"), "/", "\")
    If Err <> 0 Then
        Response.Status = "500 Internal Server Error"
        Response.Write "Error"
        Exit For
    End If
Next


%>



I have tested cookie creation and reading works fine

(<script type="text/javascript">
document.cookie = "Dave=james";
</script>)


<%
user=Request.Cookies("directory")
response.write("Firstname= " & user)
%>


 along with statically setting the dir string value but cant get both to work

dir = "dave"


so what am i doing wrong?

 
#1

    Online Bookmarks Sharing: Share/Bookmark

    Jump to:

    Current active users

    There are 0 members and 1 guests.

    Icon Legend and Permission

    • New Messages
    • No New Messages
    • Hot Topic w/ New Messages
    • Hot Topic w/o New Messages
    • Locked w/ New Messages
    • Locked w/o New Messages
    • Read Message
    • Post New Thread
    • Reply to message
    • Post New Poll
    • Submit Vote
    • Post reward post
    • Delete my own posts
    • Delete my own threads
    • Rate post

    2000-2012 ASPPlayground.NET Forum Version 3.9