Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21

Discussione: problema upload file

  1. #1

    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:

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

    codice:
    <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>
    La pagina però mi restituisce il seguente errore:
    codice:
    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 almeno 2 ore --> 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.

  2. #2

    Re: problema upload file

    Originariamente inviato da bormiositi
    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:

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

    codice:
    <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>
    La pagina però mi restituisce il seguente errore:
    codice:
    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 almeno 2 ore --> 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.
    Se id è numerico non va messo tra virgolette:
    codice:
    SQL = "SELECT * FROM media WHERE ID="&id

  3. #3
    ciao michele e grazie per la risposta.

    l'id è numerico e mi sembra che già sia tra "".

    codice:
    SQL = "SELECT * FROM media WHERE ID ="&id&""
    come dovrei scrivere la stringa? Non capisco

  4. #4
    ooooops sorry, ho letto di fretta e male.....

    ora provo a toglierle....

    ti dico....

    scusa ancora!

  5. #5
    niente da fare, forse l'ho riscritto male...mi da lo stesso errore...

    come dovrebbe essere la sintassi corretta della stringa?

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

  6. #6
    La sintassi te l'ho scritta sopra
    copia e incolla la stringa che ti ho scritto prima
    E poi come passi l'id?

  7. #7
    fatto come da te indicato ma mi restituisce sempre lo stesso errore...

  8. #8
    Originariamente inviato da bormiositi
    fatto come da te indicato ma mi restituisce sempre lo stesso errore...
    Il problema è che la query non riceve l'id.
    Prova a fare così per vedere se funziona:
    codice:
    <%
    id= 1
    	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
    %>
    Eventualmente all'inizio dove c'è:
    id= 1
    al posto di 1 metti il numero di un record esistente

  9. #9
    ninte da fare, mi da comunque errore....

    l'id dovrebbe riceverlo anche perchè nella pagina precedente dove consento la scelta dell'articolo da modificare ho il seguente link

    codice:
    ">allegato
    infatti nella pagina che dovrebbe processare i dati per l'upload del nuovo allegato vedo nell'indirizzo l'id

    codice:
    ../mod_media_img.asp?id=5
    non capisco quindi che senso avrebbe dichiararlo manualmente.

    Inoltre utilizzo la stessa procedura su altri siti e non mi ha mai dato problemi.

  10. #10
    Ma scusa... ma tu passi l'id sia via url che dalla form?

    Se tu richiami la pagina di upload inviandogli l'id nella url, nella sql metterai :

    ...where id="&request.querystring("id")&"....

    se lo vuoi prendere dalla form (come forse sarebbe più logico in questo caso...che è anche nascosta nella input "hidden"), la tua sql sarà:

    ...where id="&oUpload.Form("id")&"...

    ma devi controllare bene che nella form della pagina precedente, la input "id" abbia il valore...perché vedo che la proprietà "value" della input hidden id, ha request.form("id")...invece, se come penso io, è all'interno del ciclo di estrazione dei dati del singolo record, dovrebbe essere rs("id") la proprietà value...

    Guarda la form della pagina prima dell'upload, e vedi se la input nascosta ha effettivamente il valore dell'id...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.