13. november 2001 - 19:37Der er
7 kommentarer og 3 løsninger
Upload af FIL
jeg har ikke prøvet dette før så jeg leder efter et script der kan upload en fil til den mappe upload scriptet ligger i. jeg bruger IIS 5.0 og ASP- SÅ hvis nogen har et forslag eller løsning så kan i høste nogle billige point.
<% 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(\"\"&filename)) For i = 1 to LenB(value) MyFile.Write chr(AscB(MidB(value,i,1))) Next MyFile.Close %>
<!--#include file=\"upload.asp\"-->
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
upload>>>>>>>>>>>>>>>>>>>>>>>><<
<% 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 har fået den til at virke på min egen computer, men ikke på min anden webserver der siger den permission denied. SÅ jeg roder med det du skal ihvertfald have tak for hjælpen.
Jeg tror lige jeg skal snakke med min web-administrator. Tak Robert
Synes godt om
Ny brugerNybegynder
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.