Avatar billede thomas_yde Nybegynder
13. november 2001 - 19:37 Der 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.
Avatar billede zyberwizard Nybegynder
13. november 2001 - 19:48 #1
OUTPUTFILE>>>>>>>>>>>>>>>>



<%
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
%>



>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>



<form METHOD=\"Post\" ENCTYPE=\"multipart/form-data\" ACTION=\"outputFile.asp\" id=\"form3\" name=\"form3\">
<input TYPE=\"file\" NAME=\"blob\"><br>
<input TYPE=\"submit\" value=\"Upload billede\" NAME=\"Enter\">



>>>>>>>>>>>>>>>>>>>>>>>>>><<
her, da!

Upload via asp uden komponenter.

Filer:

uploadfile.asp    filen der skal præsenteres for brugerne
        består af en inputbox og noget gennemse.

upload.asp og outputfile.asp - selve motoren bag showet.. lad være med at pille :)
Avatar billede j.robert Nybegynder
13. november 2001 - 19:48 #2
Avatar billede zyberwizard Nybegynder
13. november 2001 - 19:48 #3
Du kan også hente min version jeg postede her

http://www.netcoders.dk/sources.asp?mode=ref&id=746&type=0
Avatar billede j.robert Nybegynder
13. november 2001 - 19:49 #4
Avatar billede keysersoze Guru
13. november 2001 - 19:50 #5
enten kan du bruge et komponent (som din server skal understøtte) - se liste; http://www.activeserverpages.dk/komponenter/default.asp?mode=kategori&id=10

eller også kan du kigge på dette script; http://www.activeserverpages.dk/download/default.asp?mode=showdownload&id=79

eller generelt bare lede på www.activeserverpages.dk samt www.netcoders.dk
Avatar billede thomas_yde Nybegynder
13. november 2001 - 21:38 #6
Hejsa Zyber jeg får denne fejlmeddelelse :

Microsoft VBScript runtime error \'800a0046\'

Permission denied

/tydexx/outputFile.asp, line 17

Ved du hvad det skyldes? jeg har skrive adgang
Avatar billede zyberwizard Nybegynder
13. november 2001 - 21:49 #7
.. Ouh.. Det ved jeg sQ ikke..Der er nok lige en ting der skal rettes så.. Gud ved hvad.. ;(..
Avatar billede thomas_yde Nybegynder
13. november 2001 - 21:51 #8
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.

Avatar billede j.robert Nybegynder
13. november 2001 - 22:02 #9
Har du execute rettighed på din mappe?
Avatar billede thomas_yde Nybegynder
13. november 2001 - 22:06 #10
Det er et godt spørgsmål :)

Jeg tror lige jeg skal snakke med min web-administrator. Tak Robert
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