• User Attivo

    problema upload file

    Ciao a tutti, ho un problema con uno script attraverso il quale dovrei consentire la "sostituzione" di un file attraverso upload (utilizzo lo script di Bao per upload).

    Lo script che processa i dati è il seguente:

    
    <%
        If Request.QueryString("Save")="1" then
            Dim oUpload
            Set oUpload = new cUpload
            oUpload.AutoRename = True
            oUpload.Overwrite = False
            oUpload.SetPath "/public/media/" 'Impostazione del PERCORSO della cartella delle IMMAGINI
            oUpload.Load
            While Not oUpload.EOF
                oUpload.Save()
                Select Case lCase(oUpload.Files("InputName"))
                    Case "allegato"
                        FileName_allegato = oUpload.GetFileName()
    
                End Select
                oUpload.MoveNext
            Wend        
            Set Conn = Server.CreateObject("ADODB.Connection")
            Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("/mdb-database/dbcamm.mdb")
            Set Rs=server.CreateObject("ADODB.Recordset")
            id = oUpload.Form("id")
            SQL = "SELECT * FROM media WHERE ID ="&id&""
            Rs.Open SQL,Conn,3,3
            Rs.update
            Rs("allegato")    = RB_VDIR & "/media/" & FileName_allegato
            Rs.update
            Rs.Close
            Conn.Close
            Set Rs = Nothing
            Set Conn=Nothing
            Set oUpload = Nothing
            Response.Redirect("m_media.asp")
        End if
    %>
    
    ```Il form, presente nella stessa pagina, attraverso cui eseguo la scelta del nuovo file è il seguente:
    

    <form action="?save=1" method="post" enctype="multipart/form-data" name="form1" id="form1">
    <input name="id" type="hidden" value="<%=Request.Form("id")%>" />
    <input name="allegato" type="file" id="allegato" size="30" />
    <input type="submit" name="Submit" value="Modifica" />
    </form>

    <a href="mod_media_img.asp?id=<%=rs("id")%>">allegato</a>

    ../mod_media_img.asp?id=5

    Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
    [Microsoft][Driver ODBC Microsoft Access] Errore di sintassi (operatore mancante) nell'espressione della query 'ID ='.
    /admin/mod_media_img.asp, line 36

    riga 36: SQL = "SELECT * FROM media WHERE ID ="&id&""

    Ci sto sbattendo la testa da circa 2 giorni --> ho
    utilizzato lo stesso script per altri siti e funziona ma qui ci deve
    essere qualcosa di stupido che non funziona.
    
    Ringrazio chiunque abbia tempo e voglia di darmi una mano.

  • User

    prova a scrivere
    SQL = "SELECT * FROM media WHERE ID ="&id
    invece di
    SQL = "SELECT * FROM media WHERE ID ="&id&""

    Fammi sapere


  • User Attivo

    ciao e grazie per la risposta....purtroppo ho già provato ma nulla da fare...


  • User

    A me funziona... sicuro che il codice che hai postato è quello che ti da problemi ?
    Io ho provato con :

    Set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("/mdb-database/dbcamm.mdb")
    Set Rs=Server.CreateObject("ADODB.Recordset")
    dim id : id = oUpload.Form("id")

    SQL = "SELECT * FROM media WHERE ID ="&id&"" Rs.Open SQL,Conn,3,3
    Rs.update
    Rs("allegato") = RB_VDIR & "/media/" & FileName_allegato
    Rs.update
    Rs.Close
    Conn.Close
    Set Rs = Nothing
    Set Conn=Nothing
    Set oUpload = Nothing
    Response.Write("ok")

    l'unica cosa è che ho dichiarato la variabie id. Prova a fare un Response.Write di oUpload.Form("id") in questo modo
    Response.Write(oUpload.Form("id")) forse non gli arriva nulla


  • User Attivo

    mi dà questo errore

    ' ' error '80020009' /admin/mod_media_img.asp, line 24

    la riga è:

    
    Select Case lCase(oUpload.Files("InputName"))
    
    

  • User Attivo

    la causa nn potrebbe essere il server su cui è hostato il sito???
    la cosa strana è che lo stesso script che ho postato lo utilizzo per altri siti hostati su aruba e funziona perfettamente con l'unica differenza che negli altri faccio l'upload di più file e qui invece di uno solo...


  • User

    beh questo è un'atro problema, forse hai copiato male


  • User Attivo

    ho fatto copia & incolla


  • User Attivo

    Sostituisci la riga seguente:

    Select Case lCase(oUpload.Files("InputName"))
    

    Con

    Select Case lCase(oUpload.Files("allegato"))