Salve a tutti, ho un problema con uno script che fa l'upload di file sul server su un database. Non sono un esperto e mi sto rompendo la testa, sembra un problema di sintassi da quanto restituisce il browser
Lo script funziona perfettamente se insieme al file (sarà un'immagine) invio anche le info inserite in un campo di testo. Il problema nasce se tento di inseirire anche le info da altre textBox.
Lo script ha 3 files:
1 il form
2 il codice asp che fa l'upload
3 il database (quest'ultimo è molto semplice e funziona perfettamente se non aggiungo altri campi nel from e nel codice di invio dei dati)
Il codice del form è il seguente:
Non credo ci sia nulla di errato, il problema suppongo sia nel codice asp che invia i dati:codice HTML:<HTML> <BODY BGCOLOR="#FFFFFF"> <h3>Aspupload: Salvare il file in Database Access via ODBC</h3> <FORM METHOD="POST" ENCTYPE="multipart/form-data" ACTION="odbc_upload.asp"> <p>Nome<br> <input name="txtNome" type="text" id="txtNome"> </p> <p>Cognome<br> <input name="txtCognome" type="text" id="txtCognome"> </p> <p>File:<BR><INPUT TYPE=FILE NAME="THEFILE"> </p> <P><BR> <INPUT TYPE=SUBMIT VALUE="Upload!"> </FORM> </BODY> </HTML>
La riga incriminata è la seguente:codice:<% Set Upload = Server.CreateObject("Persits.Upload") ' Capture files percorso = Server.MapPath("/concorso2014/immagini") Upload.Save percorso ' Obtain file object Set File = Upload.Files("THEFILE") If Not File Is Nothing Then ' Build ODBC connection string Connect = "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("aspupload.mdb") ' If you use SQL Server, the connecton string must look something like this: ' Connect = "Driver=SQL Server;Server=MYSRV;Database=master;UID=sa;PWD=xxx" ' Build SQL INSERT statement SQL = "INSERT INTO MYIMAGES(image_blob, filename, nome, cognome, filesize ) VALUES(?, '" SQL = SQL & File.Filename & "', '" SQL = SQL & Replace(Upload.Form("txtNome"), "'", "''") & "', " SQL = SQL & Replace(Upload.Form("txtCognome"), "'", "''") & "', " SQL = SQL & File.Size & ")" ' Save to database File.ToDatabase Connect, SQL Response.Write "Grazie, il tuo file è stato inserito nel database." Else Response.Write "Attenzione! File non selezionato." End If %>
Se non la inserisco funziona perfettamente. Il mio dubbio è: non posso inserire altri campi di testo con questo tipo di script? Ne supporta solo uno oltre ai campi per l'upload?codice:SQL = SQL & Replace(Upload.Form("txtCognome"), "'", "''") & "', "
Se inserisco il secondo campo di testo (nel'esempio "cognome") ottengo il seguente errore dal browser:
codice:Persits.Upload.1 error '800a001c' [Microsoft][ODBC Microsoft Access Driver] Syntax error in string in query expression 'TestoCognome', 197171)'. /concorso2014/odbc_upload.asp, line 29Mi è venuto il mal di testa, grazie a chi vorrà darmi una mano
Rob

Mi è venuto il mal di testa, grazie a chi vorrà darmi una mano
Rispondi quotando
