Avatar billede bjarke-b Nybegynder
17. februar 2001 - 22:39 Der er 1 kommentar og
2 løsninger

Upload

Jeg har dette upload tingeling her,
<%
Response.Expires=0
Response.Buffer = TRUE
Response.Clear
byteCount = Request.TotalBytes
RequestBin = Request.BinaryRead(byteCount)
Dim UploadRequest
Set UploadRequest = CreateObject(\"Scripting.Dictionary\")
BuildUploadRequest(RequestBin)
contentType = UploadRequest.Item(\"blob\").Item(\"ContentType\")
filepathname = UploadRequest.Item(\"blob\").Item(\"FileName\")
filename = Right(filepathname,Len(filepathname)-InstrRev(filepathname,\"\\\"))
value = UploadRequest.Item(\"blob\").Item(\"Value\")
Set ScriptObject = Server.CreateObject(\"Scripting.FileSystemObject\")
\'pathEnd = Len(Server.mappath(Request.ServerVariables(\"PATH_INFO\")))-14
\'Response.Write (Request.ServerVariables(\"PATH_INFO\"))
Set MyFile = ScriptObject.CreateTextFile(Server.mappath(\"../profilimg/\" & session(\"id\") & \"_\" & filename & \"\"))
For i = 1 to LenB(value)
    MyFile.Write chr(AscB(MidB(value,i,1)))
Next
MyFile.Close    %>

<%
Sub BuildUploadRequest(RequestBin)
    \'Get the boundary
    PosBeg = 1
    PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(13)))
    boundary = MidB(RequestBin,PosBeg,PosEnd-PosBeg)
    boundaryPos = InstrB(1,RequestBin,boundary)
    \'Get all data inside the boundaries
    Do until (boundaryPos=InstrB(RequestBin,boundary & getByteString(\"--\")))
        \'Members variable of objects are put in a dictionary object
        Dim UploadControl
        Set UploadControl = CreateObject(\"Scripting.Dictionary\")
        \'Get an object name
        Pos = InstrB(BoundaryPos,RequestBin,getByteString(\"Content-Disposition\"))
        Pos = InstrB(Pos,RequestBin,getByteString(\"name=\"))
        PosBeg = Pos+6
        PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(34)))
        Name = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
        PosFile = InstrB(BoundaryPos,RequestBin,getByteString(\"filename=\"))
        PosBound = InstrB(PosEnd,RequestBin,boundary)
        \'Test if object is of file type
        If  PosFile<>0 AND (PosFile<PosBound) Then
            \'Get Filename, content-type and content of file
            PosBeg = PosFile + 10
            PosEnd =  InstrB(PosBeg,RequestBin,getByteString(chr(34)))
            FileName = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
            \'Add filename to dictionary object
            UploadControl.Add \"FileName\", FileName
            Pos = InstrB(PosEnd,RequestBin,getByteString(\"Content-Type:\"))
            PosBeg = Pos+14
            PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(13)))
            \'Add content-type to dictionary object
            ContentType = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
            UploadControl.Add \"ContentType\",ContentType
            \'Get content of object
            PosBeg = PosEnd+4
            PosEnd = InstrB(PosBeg,RequestBin,boundary)-2
            Value = MidB(RequestBin,PosBeg,PosEnd-PosBeg)
            Else
            \'Get content of object
            Pos = InstrB(Pos,RequestBin,getByteString(chr(13)))
            PosBeg = Pos+4
            PosEnd = InstrB(PosBeg,RequestBin,boundary)-2
            Value = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
        End If
        \'Add content to dictionary object
    UploadControl.Add \"Value\" , Value   
        \'Add dictionary object to main dictionary
    UploadRequest.Add name, UploadControl   
        \'Loop to next object
        BoundaryPos=InstrB(BoundaryPos+LenB(boundary),RequestBin,boundary)
    Loop

End Sub

\'String to byte string conversion
Function getByteString(StringStr)
For i = 1 to Len(StringStr)
    char = Mid(StringStr,i,1)
    getByteString = getByteString & chrB(AscB(char))
Next
End Function

\'Byte string to string conversion
Function getString(StringBin)
getString =\"\"
For intCount = 1 to LenB(StringBin)
    getString = getString & chr(AscB(MidB(StringBin,intCount,1)))
Next
End Function
%>

Jeg forstår ikke helt selv noget af den, men det virker da ;-)
Nogen der kan få det til og afvise filer over 50 kb ?
Avatar billede -mundi- Nybegynder
17. februar 2001 - 22:54 #1
<%
\'******* nyt*****
limit = 50000
\'******* nyt end *****
Response.Expires=0
Response.Buffer = TRUE
Response.Clear
byteCount = Request.TotalBytes
\'****** her er nyt *************
if byteCount<limit then
\'****** her er nyt end*************

RequestBin = Request.BinaryRead(byteCount)
Dim UploadRequest
Set UploadRequest = CreateObject(\"Scripting.Dictionary\")
BuildUploadRequest(RequestBin)
contentType = UploadRequest.Item(\"blob\").Item(\"ContentType\")
filepathname = UploadRequest.Item(\"blob\").Item(\"FileName\")
filename = Right(filepathname,Len(filepathname)-InstrRev(filepathname,\"\\\"))
value = UploadRequest.Item(\"blob\").Item(\"Value\")
Set ScriptObject = Server.CreateObject(\"Scripting.FileSystemObject\")
\'pathEnd = Len(Server.mappath(Request.ServerVariables(\"PATH_INFO\")))-14
\'Response.Write (Request.ServerVariables(\"PATH_INFO\"))
Set MyFile = ScriptObject.CreateTextFile(Server.mappath(\"../profilimg/\" & session(\"id\") & \"_\" & filename & \"\"))
For i = 1 to LenB(value)
    MyFile.Write chr(AscB(MidB(value,i,1)))
Next
MyFile.Close    %>

<%
Sub BuildUploadRequest(RequestBin)
    \'Get the boundary
    PosBeg = 1
    PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(13)))
    boundary = MidB(RequestBin,PosBeg,PosEnd-PosBeg)
    boundaryPos = InstrB(1,RequestBin,boundary)
    \'Get all data inside the boundaries
    Do until (boundaryPos=InstrB(RequestBin,boundary & getByteString(\"--\")))
        \'Members variable of objects are put in a dictionary object
        Dim UploadControl
        Set UploadControl = CreateObject(\"Scripting.Dictionary\")
        \'Get an object name
        Pos = InstrB(BoundaryPos,RequestBin,getByteString(\"Content-Disposition\"))
        Pos = InstrB(Pos,RequestBin,getByteString(\"name=\"))
        PosBeg = Pos+6
        PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(34)))
        Name = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
        PosFile = InstrB(BoundaryPos,RequestBin,getByteString(\"filename=\"))
        PosBound = InstrB(PosEnd,RequestBin,boundary)
        \'Test if object is of file type
        If  PosFile<>0 AND (PosFile<PosBound) Then
            \'Get Filename, content-type and content of file
            PosBeg = PosFile + 10
            PosEnd =  InstrB(PosBeg,RequestBin,getByteString(chr(34)))
            FileName = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
            \'Add filename to dictionary object
            UploadControl.Add \"FileName\", FileName
            Pos = InstrB(PosEnd,RequestBin,getByteString(\"Content-Type:\"))
            PosBeg = Pos+14
            PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(13)))
            \'Add content-type to dictionary object
            ContentType = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
            UploadControl.Add \"ContentType\",ContentType
            \'Get content of object
            PosBeg = PosEnd+4
            PosEnd = InstrB(PosBeg,RequestBin,boundary)-2
            Value = MidB(RequestBin,PosBeg,PosEnd-PosBeg)
            Else
            \'Get content of object
            Pos = InstrB(Pos,RequestBin,getByteString(chr(13)))
            PosBeg = Pos+4
            PosEnd = InstrB(PosBeg,RequestBin,boundary)-2
            Value = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
        End If
        \'Add content to dictionary object
    UploadControl.Add \"Value\" , Value   
        \'Add dictionary object to main dictionary
    UploadRequest.Add name, UploadControl   
        \'Loop to next object
        BoundaryPos=InstrB(BoundaryPos+LenB(boundary),RequestBin,boundary)
    Loop

End Sub

\'String to byte string conversion
Function getByteString(StringStr)
For i = 1 to Len(StringStr)
    char = Mid(StringStr,i,1)
    getByteString = getByteString & chrB(AscB(char))
Next
End Function

\'Byte string to string conversion
Function getString(StringBin)
getString =\"\"
For intCount = 1 to LenB(StringBin)
    getString = getString & chr(AscB(MidB(StringBin,intCount,1)))
Next
End Function
\'****** her er nyt *************
else
  response.write \"DIn fil er for stor\"
end if
\'****** her er nyt end  *************

%>

Jeg er ikke helt sikker på om responsewrite delen duer, har ikke testet det igennem, men det burde virke
Avatar billede bjarke-b Nybegynder
10. marts 2001 - 19:25 #2
hmm bruger ASP upload i stedet for
Avatar billede bjarke-b Nybegynder
10. marts 2001 - 19:26 #3
.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester