Avatar billede hjemmeskoen Nybegynder
28. marts 2005 - 14:15 Der er 11 kommentarer og
1 løsning

aspUpload - Web10

Hejsa.

Jeg har fundet ud af at web10 ikke understøtter aspSmartupload men istedet aspUpload så jeg ville høre om der er nogle der har et script der virker 100% til web10 og evt. om placering i mapperne osv. i scriptet skulle man gerne kunne markere den fil man vil uploade via gennemse også placere den filen i en mappe.

Håber i kan hjælpe.

//Kristian
Avatar billede hundevennen Nybegynder
28. marts 2005 - 14:20 #1
<%    Option Explicit %>
<%    Response.Expires    = 0 %>
<body background="baggrund.jpg">
<%
    Dim UPLOAD_PATH


        UPLOAD_PATH    = Server.MapPath("fotos")

    Dim g_oFso, g_oFolder, g_oFile
        Set g_oFso    = Server.CreateObject("Scripting.FileSystemObject")
        Set g_oFolder    = g_oFso.getFolder(UPLOAD_PATH)

    If (Request.ServerVariables("REQUEST_METHOD") = "POST") Then
        Dim g_oUpload
            Set g_oUpload    = get_upload_files()

        Dim fpos, fcontent
            fcontent    = g_oUpload("upload").Item("content")
        Set g_oFile    = g_oFso.CreateTextFile(UPLOAD_PATH & "\" & extract_filename(g_oUpload("upload").Item("filename")))
        For fpos = 1 to LenB(fcontent)
            g_oFile.Write chr(AscB(MidB(fcontent, fpos, 1)))
        Next
        g_oFile.Close: Set g_oFile    = Nothing

        Response.Redirect Request.ServerVariables("SCRIPT_NAME")
    End If

    Response.Write "<html><body><table>"
    response.write "<tr><td>Billedupload til fotomappen randomimage</td></tr>"
    Response.Write "<tr><td><hr></td></tr>"
    For Each g_oFile In g_oFolder.Files
        Response.Write "<tr><td><a href=""files/" & g_oFile.Name & """>" & g_oFile.name & "</a></td></tr>"
    Next
    Response.Write "<tr><td><hr></td></tr>"
    Response.Write "<tr><td align=""right""><form name=""frmUpload"" method=""post"" enctype=""multipart/form-data"" action=""" & Request.ServerVariables("SCRIPT_NAME") & """>"
    Response.Write "<input type=""file"" name=""upload""> &nbsp; <input type=""submit"" value=""upload""></td></tr>"
    Response.Write "</table></body></html>"

%>
<%
    Function get_upload_files()
        Dim    upload_object, request_binaries
        Dim position_start, position_end
        Dim boundary, boundary_pos

        Set upload_object    = Server.CreateObject("Scripting.Dictionary")
        request_binaries    = Request.BinaryRead(Request.TotalBytes)
        position_start        = 1
        position_end        = InstrB(position_start, request_binaries, get_byte_string(chr(13)))
        boundary            = MidB(request_binaries, position_start, (position_end - position_start))
        boundary_pos        = InstrB(1, request_binaries, boundary)

        Do Until (boundary_pos = InstrB(request_binaries, boundary & get_byte_string("--")))
            If Not(Response.IsClientConnected) Then Response.End

            Dim name, pos_file

            position_start    = (InstrB(InstrB(boundary_pos, request_binaries, get_byte_string("Content-Disposition")), request_binaries, get_byte_string("name=")) + 6)
            position_end    = InstrB(position_start, request_binaries, get_byte_string(chr(34)))

            name            = get_string(MidB(request_binaries, position_start, (position_end - position_start)))
            pos_file        = InstrB(boundary_pos, request_binaries, get_byte_string("filename="))

            If  ((pos_file <> 0) AND (pos_file < InstrB(position_end, request_binaries, boundary))) Then
                upload_object.Add name, Server.CreateObject("Scripting.Dictionary")

                position_start    = (pos_file + 10)
                position_end    = InstrB(position_start, request_binaries, get_byte_string(chr(34)))
                upload_object.item(name).Add "filename", get_string(MidB(request_binaries, position_start, (position_end - position_start)))

                position_start    = (InstrB(position_end, request_binaries, get_byte_string("Content-Type:")) + 14)
                position_end    = InstrB(position_start, request_binaries, get_byte_string(chr(13)))
                upload_object.item(name).Add "content-type", get_string(MidB(request_binaries, position_start, (position_end - position_start)))

                position_start    = (position_end + 4)
                position_end    = InstrB(position_start, request_binaries, boundary) - 2
                upload_object.item(name).Add "size", ((position_end - position_start))
                upload_object.item(name).Add "content", MidB(request_binaries, position_start, (position_end - position_start))
            End If
            boundary_pos    = InstrB(boundary_pos + LenB(boundary), request_binaries, boundary)
        Loop

        Set get_upload_files = upload_object
    End Function

    Function get_byte_string(str)
        Dim cnt
        For cnt = 1 to Len(str)
            get_byte_string    = get_byte_string & chrB(AscB(Mid(str, cnt, 1)))
        Next
    End Function

    Function get_string(str)
        Dim cnt
        For cnt = 1 to LenB(str)
            get_string    = get_string & chr(AscB(MidB(str, cnt, 1)))
        Next
    End Function

    Function extract_filename(filename)
        extract_filename    = Right(filename, Len(filename) - InStrRev(filename, "\", -1, 1))
    End Function
%>
Avatar billede moejensen Nybegynder
28. marts 2005 - 14:20 #2
Prøv med det her:

HTML form for uploading up to 3 files, which also contains a text description field, and a multiple select control:

<HTML>
<BODY BGCOLOR="#FFFFFF">
<FORM METHOD="POST" ENCTYPE="multipart/form-data" ACTION="Upload.asp">
<INPUT TYPE=FILE NAME="FILE1"><BR>
<INPUT TYPE=FILE NAME="FILE2"><BR>
<INPUT TYPE=FILE NAME="FILE3"><BR>

<INPUT TYPE=TEXT NAME="DESCRIPTION"><BR>

<SELECT NAME="CATEGORY" MULTIPLE>
<OPTION>Image
<OPTION>Text
<OPTION>Source Code
<OPTION>Archive
</SELECT><BR>

<INPUT TYPE=SUBMIT VALUE="Upload!">
</FORM>
</BODY>
</HTML>

Corresponding Upload Script (Upload.asp):

<%
Set Upload = Server.CreateObject("Persits.Upload.1")

' Upload files
Upload.OverwriteFiles = False ' Generate unique names
Upload.SetMaxSize 1048576 ' Truncate files above 1MB
Upload.Save "c:\upload"

' Process all files received
For Each File in Upload.Files

  ' Save in the database as blob
  File.ToDatabase "DSN=data;UID=sa;PWD=zzz;", _
  "insert into mytable(blob) values(?)"

  ' Move to a different location
  File.Copy "d:\archive\" & File.ExtractFileName
  File.Delete
Next
' Display description field
Response.Write Upload.Form("Description") & "<BR>"

' Display all selected categories
For Each Item in Upload.Form
  If Item.Name = "Category" Then
    Response.Write Item.Value & "<BR>"
  End If
Next
%>
Avatar billede hjemmeskoen Nybegynder
28. marts 2005 - 14:37 #3
Hundevennen - Jeg får fejlen:

Microsoft VBScript runtime error '800a0046'

Permission denied

/Test.asp, line 20


Hvorfor?
Avatar billede moejensen Nybegynder
28. marts 2005 - 14:44 #4
du skal sørge for at du har IUSR_SERVERNAVN skriverettigheder ti lden mappe du forsøger at gemme filen i på serveren. Det er noget web10 skal sætte for dig.
Avatar billede hundevennen Nybegynder
28. marts 2005 - 14:44 #5
der er formentlig ikke skriveadgang til den mappe du vil uploade til
Avatar billede hundevennen Nybegynder
28. marts 2005 - 14:47 #6
i starten af scriptet er der denne linie<  UPLOAD_PATH    = Server.MapPath("fotos")
prøv at ændre fotos til en mappe du har på dit website og hvor du har ret til at lægge filer ind i
Avatar billede hjemmeskoen Nybegynder
28. marts 2005 - 14:58 #7
Jeg har skrive adgang og jeg har rettet den linie der men der var også denne linie:

  Set g_oFile    = g_oFso.CreateTextFile(UPLOAD_PATH & "\" & extract_filename(g_oUpload("Images").Item("filename")))

der rettede jeg også lige mappen til Images men så får jeg fejlen:

Microsoft VBScript runtime error '800a01a8'

Object required: '[undefined]'

/Test.asp, line 20



Der må være noget galt?
Avatar billede hundevennen Nybegynder
28. marts 2005 - 15:10 #8
hmm - det er en komplet afskrift som jeg selv bruger og jeg har ingen problemer
Avatar billede hjemmeskoen Nybegynder
28. marts 2005 - 15:18 #9
<%    Option Explicit %>
<%    Response.Expires    = 0 %>
<body background="baggrund.jpg">
<%
    Dim UPLOAD_PATH


        UPLOAD_PATH    = Server.MapPath("Images")

    Dim g_oFso, g_oFolder, g_oFile
        Set g_oFso    = Server.CreateObject("Scripting.FileSystemObject")
        Set g_oFolder    = g_oFso.getFolder(UPLOAD_PATH)

    If (Request.ServerVariables("REQUEST_METHOD") = "POST") Then
        Dim g_oUpload
            Set g_oUpload    = get_upload_files()

        Dim fpos, fcontent
            fcontent    = g_oUpload("upload").Item("content")
        Set g_oFile    = g_oFso.CreateTextFile(UPLOAD_PATH & "\" & extract_filename(g_oUpload("Images").Item("filename")))
        For fpos = 1 to LenB(fcontent)
            g_oFile.Write chr(AscB(MidB(fcontent, fpos, 1)))
        Next
        g_oFile.Close: Set g_oFile    = Nothing

        Response.Redirect Request.ServerVariables("SCRIPT_NAME")
    End If

    Response.Write "<html><body><table>"
    response.write "<tr><td>Billedupload til fotomappen randomimage</td></tr>"
    Response.Write "<tr><td><hr></td></tr>"
    For Each g_oFile In g_oFolder.Files
        Response.Write "<tr><td><a href=""Images/" & g_oFile.Name & """>" & g_oFile.name & "</a></td></tr>"
    Next
    Response.Write "<tr><td><hr></td></tr>"
    Response.Write "<tr><td align=""right""><form name=""frmUpload"" method=""post"" enctype=""multipart/form-data"" action=""" & Request.ServerVariables("SCRIPT_NAME") & """>"
    Response.Write "<input type=""file"" name=""upload""> &nbsp; <input type=""submit"" value=""upload""></td></tr>"
    Response.Write "</table></body></html>"

%>
<%
    Function get_upload_files()
        Dim    upload_object, request_binaries
        Dim position_start, position_end
        Dim boundary, boundary_pos

        Set upload_object    = Server.CreateObject("Scripting.Dictionary")
        request_binaries    = Request.BinaryRead(Request.TotalBytes)
        position_start        = 1
        position_end        = InstrB(position_start, request_binaries, get_byte_string(chr(13)))
        boundary            = MidB(request_binaries, position_start, (position_end - position_start))
        boundary_pos        = InstrB(1, request_binaries, boundary)

        Do Until (boundary_pos = InstrB(request_binaries, boundary & get_byte_string("--")))
            If Not(Response.IsClientConnected) Then Response.End

            Dim name, pos_file

            position_start    = (InstrB(InstrB(boundary_pos, request_binaries, get_byte_string("Content-Disposition")), request_binaries, get_byte_string("name=")) + 6)
            position_end    = InstrB(position_start, request_binaries, get_byte_string(chr(34)))

            name            = get_string(MidB(request_binaries, position_start, (position_end - position_start)))
            pos_file        = InstrB(boundary_pos, request_binaries, get_byte_string("filename="))

            If  ((pos_file <> 0) AND (pos_file < InstrB(position_end, request_binaries, boundary))) Then
                upload_object.Add name, Server.CreateObject("Scripting.Dictionary")

                position_start    = (pos_file + 10)
                position_end    = InstrB(position_start, request_binaries, get_byte_string(chr(34)))
                upload_object.item(name).Add "filename", get_string(MidB(request_binaries, position_start, (position_end - position_start)))

                position_start    = (InstrB(position_end, request_binaries, get_byte_string("Content-Type:")) + 14)
                position_end    = InstrB(position_start, request_binaries, get_byte_string(chr(13)))
                upload_object.item(name).Add "content-type", get_string(MidB(request_binaries, position_start, (position_end - position_start)))

                position_start    = (position_end + 4)
                position_end    = InstrB(position_start, request_binaries, boundary) - 2
                upload_object.item(name).Add "size", ((position_end - position_start))
                upload_object.item(name).Add "content", MidB(request_binaries, position_start, (position_end - position_start))
            End If
            boundary_pos    = InstrB(boundary_pos + LenB(boundary), request_binaries, boundary)
        Loop

        Set get_upload_files = upload_object
    End Function

    Function get_byte_string(str)
        Dim cnt
        For cnt = 1 to Len(str)
            get_byte_string    = get_byte_string & chrB(AscB(Mid(str, cnt, 1)))
        Next
    End Function

    Function get_string(str)
        Dim cnt
        For cnt = 1 to LenB(str)
            get_string    = get_string & chr(AscB(MidB(str, cnt, 1)))
        Next
    End Function

    Function extract_filename(filename)
        extract_filename    = Right(filename, Len(filename) - InStrRev(filename, "\", -1, 1))
    End Function
%>





Kan jeg så ikke få dig til at skrive alle mappe navnene om til Images altså så det er mappen Images filerne bliver uploadet til?
Avatar billede ste Nybegynder
28. marts 2005 - 20:10 #10
Hej.
Hos web10 kan du kan uploade til upload mappen. Du skal oprette fotos mappen i uplaod og så skal din Server.MapPath("upload/fotos") se sådan ud. Du kan evt bruge FSO.
Avatar billede hundevennen Nybegynder
29. marts 2005 - 19:47 #11
<%
    Dim UPLOAD_PATH


        UPLOAD_PATH    = Server.MapPath("images")

    Dim g_oFso, g_oFolder, g_oFile
        Set g_oFso    = Server.CreateObject("Scripting.FileSystemObject")
        Set g_oFolder    = g_oFso.getFolder(UPLOAD_PATH)

    If (Request.ServerVariables("REQUEST_METHOD") = "POST") Then
        Dim g_oUpload
            Set g_oUpload    = get_upload_files()

        Dim fpos, fcontent
            fcontent    = g_oUpload("upload").Item("content")
        Set g_oFile    = g_oFso.CreateTextFile(UPLOAD_PATH & "\" & extract_filename(g_oUpload("upload").Item("filename")))
        For fpos = 1 to LenB(fcontent)
            g_oFile.Write chr(AscB(MidB(fcontent, fpos, 1)))
        Next
        g_oFile.Close: Set g_oFile    = Nothing

        Response.Redirect Request.ServerVariables("SCRIPT_NAME")
    End If

    Response.Write "<html><body><table>"
    response.write "<tr><td>Billedupload til fotomappen images</td></tr>"
    Response.Write "<tr><td><hr></td></tr>"
    For Each g_oFile In g_oFolder.Files
        Response.Write "<tr><td><a href=""files/" & g_oFile.Name & """>" & g_oFile.name & "</a></td></tr>"
    Next
    Response.Write "<tr><td><hr></td></tr>"
    Response.Write "<tr><td align=""right""><form name=""frmUpload"" method=""post"" enctype=""multipart/form-data"" action=""" & Request.ServerVariables("SCRIPT_NAME") & """>"
    Response.Write "<input type=""file"" name=""upload""> &nbsp; <input type=""submit"" value=""upload""></td></tr>"
    Response.Write "</table></body></html>"

%>
<%
    Function get_upload_files()
        Dim    upload_object, request_binaries
        Dim position_start, position_end
        Dim boundary, boundary_pos

        Set upload_object    = Server.CreateObject("Scripting.Dictionary")
        request_binaries    = Request.BinaryRead(Request.TotalBytes)
        position_start        = 1
        position_end        = InstrB(position_start, request_binaries, get_byte_string(chr(13)))
        boundary            = MidB(request_binaries, position_start, (position_end - position_start))
        boundary_pos        = InstrB(1, request_binaries, boundary)

        Do Until (boundary_pos = InstrB(request_binaries, boundary & get_byte_string("--")))
            If Not(Response.IsClientConnected) Then Response.End

            Dim name, pos_file

            position_start    = (InstrB(InstrB(boundary_pos, request_binaries, get_byte_string("Content-Disposition")), request_binaries, get_byte_string("name=")) + 6)
            position_end    = InstrB(position_start, request_binaries, get_byte_string(chr(34)))

            name            = get_string(MidB(request_binaries, position_start, (position_end - position_start)))
            pos_file        = InstrB(boundary_pos, request_binaries, get_byte_string("filename="))

            If  ((pos_file <> 0) AND (pos_file < InstrB(position_end, request_binaries, boundary))) Then
                upload_object.Add name, Server.CreateObject("Scripting.Dictionary")

                position_start    = (pos_file + 10)
                position_end    = InstrB(position_start, request_binaries, get_byte_string(chr(34)))
                upload_object.item(name).Add "filename", get_string(MidB(request_binaries, position_start, (position_end - position_start)))

                position_start    = (InstrB(position_end, request_binaries, get_byte_string("Content-Type:")) + 14)
                position_end    = InstrB(position_start, request_binaries, get_byte_string(chr(13)))
                upload_object.item(name).Add "content-type", get_string(MidB(request_binaries, position_start, (position_end - position_start)))

                position_start    = (position_end + 4)
                position_end    = InstrB(position_start, request_binaries, boundary) - 2
                upload_object.item(name).Add "size", ((position_end - position_start))
                upload_object.item(name).Add "content", MidB(request_binaries, position_start, (position_end - position_start))
            End If
            boundary_pos    = InstrB(boundary_pos + LenB(boundary), request_binaries, boundary)
        Loop

        Set get_upload_files = upload_object
    End Function

    Function get_byte_string(str)
        Dim cnt
        For cnt = 1 to Len(str)
            get_byte_string    = get_byte_string & chrB(AscB(Mid(str, cnt, 1)))
        Next
    End Function

    Function get_string(str)
        Dim cnt
        For cnt = 1 to LenB(str)
            get_string    = get_string & chr(AscB(MidB(str, cnt, 1)))
        Next
    End Function

    Function extract_filename(filename)
        extract_filename    = Right(filename, Len(filename) - InStrRev(filename, "\", -1, 1))
    End Function
%>
Avatar billede hundevennen Nybegynder
29. marts 2005 - 19:48 #12
din upload.asp skal ligge i roden og imagebiblioteket ligeså, - sådan ligger det hos mig og virker
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