[Risolto] upload immagini con la classe di Baol74 con size immagine

fabiusRiders

Nuovo Utente
23 Gen 2011
26
0
0
www.ridersitalia.it
ciao a tutti,
sto usando la classe di Baol74 per uppare le immagini nel server e al contempo inserirne il nome nel db access.
ho modificato il file originale per mettere la regola delle dimensioni del file, ma non funziona mi restituisce errore di
dichiarazione prevista END WITH a fine script, ma io il with lo dichiaro a inizio script.
dove sbaglio ???

ecco il sorgente:
<%
AD_ID = request("AD_ID")
if AD_ID < 1 then
response.write (errormsg)
response.end
end if

Dim oUpload
Set oUpload= new cUpload
With oUpload
'La riga seguente impoosta la connessione al database e la tabella di inserimento dati
'La connesione e la tabella verranno aperti con il metodo oUpload.Database.Open()
.SetDatabase "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.MapPath("../mdb-database/DUclassified.mdb"),"SELECT * from ADS where AD_ID = " & AD_ID & ";"
.EnabledAspUpload = False
.EnabledImageSize = True
.EnabledLog = False
.AutoRename = True
.Overwrite = False
.SetPath "../public/immagini_bacheca/"
.Load
'nuovo
.UploadOnly "Images"
While Not .Eof
If cLng(.Files("Size"))>(700*1024) then
Response.write ("L'immagine è troppo grande")
If .Files("Height")>=400 or .Files("Width")>=400 then
Response.write ("Le dimensioni dell'immagine " &_
.GetFileName() &" non sono corrette (" &_
.Files("Height") &"x" & .Files("Width") &"): File non caricato" )
else
'fine nuovo
.MoveFirst
if .EOF then
NumFiles = .Count()
Response.write "0 Files caricati su " & NumFiles &" : controlla le dimensioni e il tipo di file."
else
.Database.Open()
While Not .EOF
.Save
response.Write "il file <strong>" & .GetFileName &"</strong> è; stato salvato correttamente <br> <h1>l'annuncio sarà visibile dopo l'approvazione, grazie da tutto lo staff</h1><br>"

'Inserimento dei valori
.Database.Fields("AD_IMAGE") = .GetFileName

'Inserimento
.Database.update
.MoveNext
Wend
end if
end if
end if

End With
Set oUpload = Nothing
%>
 

fabiusRiders

Nuovo Utente
23 Gen 2011
26
0
0
www.ridersitalia.it
Ciao Paolo,
Si tratta dell'upload di Baol74 che puoi trovare qui.
http://www.creamweb.it/script/mostra_script/?id_script=12

lo script funziona benissimo, io ho aggiunto questa parte
'nuovo
.UploadOnly "Images"
While Not .Eof
If cLng(.Files("Size"))>(700*1024) then
Response.write ("L'immagine è troppo grande")
If .Files("Height")>=400 or .Files("Width")>=400 then
Response.write ("Le dimensioni dell'immagine " &_
.GetFileName() &" non sono corrette (" &_
.Files("Height") &"x" & .Files("Width") &"): File non caricato" )
else
'fine nuovo

ma non funziona mi restituisce errore a fine script di previso END WITH anche se lo dichiaro a inizio script.
 

Paolo69

Moderatore
Membro dello Staff
MOD
18 Feb 2010
555
13
18
Italy
www.caprioli.info
...script interessante, nel pomeriggio ci smanetto un po.

Prova così...

Codice:
[B][I]If cLng(.Files("Size"))>(700*1024) then Response.write ("L'immagine è troppo grande")[/I][/B]
If .Files("Height")>=400 or .Files("Width")>=400 then
Response.write ("Le dimensioni dell'immagine " &_
.GetFileName() &" non sono corrette (" &_
.Files("Height") &"x" & .Files("Width") &"): File non caricato" )
[B][I]End If[/I][/B]

Buon week-end
Paolo
 

Paolo69

Moderatore
Membro dello Staff
MOD
18 Feb 2010
555
13
18
Italy
www.caprioli.info
...ci ho lavorato su, il seguente codice mi funziona, confrontalo con il tuo:

Codice:
<%

Dim oUpload
Set oUpload= new cUpload
With oUpload

'DB --------------------------------
	.SetDatabase "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.MapPath("mdb/db.mdb"),"SELECT Top 1 * FROM Tabella1"
'DB --------------------------------
	.EnabledAspUpload = False
	.EnabledImageSize = TRUE
	.EnabledLog = False
	.AutoRename = True
	.Overwrite = False
	.SetPath "files\"
	.Load
	.UploadOnly "Images"
While Not .Eof

'SIZE FILE -------------------------

	If cLng(.Files("Size"))>(700*1024) then Response.write ("L'immagine è troppo grande")
	If .Files("Height")>=400 or .Files("Width")>=400 then
		Response.write ("Le dimensioni dell'immagine " &_
		.GetFileName() &" non sono corrette (" &_
		.Files("Height") &"x" & .Files("Width") &"): File non caricato" )
	else
	
'DB --------------------------------	
			.Database.Open()
			While Not .EOF
					.Save
					response.Write "il file " & .GetFileName &" è stato salvato <br>"
					'Inserimento dei valori
					.Database.Fields("Titolo") = .Form("Titolo")
					.Database.Fields("Percorso") = .GetCompletePathFile
					'Inserimento
					.Database.AddNew()
			.MoveNext
			Wend
'DB --------------------------------	
 		.Save
	end if
	
.MoveNext
Wend
End With
Set oUpload = Nothing

%>
 

fabiusRiders

Nuovo Utente
23 Gen 2011
26
0
0
www.ridersitalia.it
Ciao Paolo,
Il file size funziona perfettamente, grazie, ma non riesco a capire perchè non mi scrive il nome del file nel database, mi lascia il campo vuoto.
L'unica modifica che ho fatto al codice che mi hai mandato, oltre a mettere i miei campi del db è stata GetFileName anzichè GetCompletePathFile, ma ho riprovato anche con GetCompletePathFile ma niente non scrive nulla.
Ah l'altra modifica è .Database.update anzichè .Database.AddNew() perchè a me serve modificare il campo
a te funziona?
 

Paolo69

Moderatore
Membro dello Staff
MOD
18 Feb 2010
555
13
18
Italy
www.caprioli.info
Ciao Paolo,
Il file size funziona perfettamente, grazie, ma non riesco a capire perchè non mi scrive il nome del file nel database, mi lascia il campo vuoto.
L'unica modifica che ho fatto al codice che mi hai mandato, oltre a mettere i miei campi del db è stata GetFileName anzichè GetCompletePathFile, ma ho riprovato anche con GetCompletePathFile ma niente non scrive nulla.
Ah l'altra modifica è .Database.update anzichè .Database.AddNew() perchè a me serve modificare il campo
a te funziona?

Ti ho modificato un po lo script, dagli un occhio, in pratica ora in base all'id chiamato in query, se il record non esiste lo inserisce, altrimenti aggiorna quello esistente:

Codice:
<%

Dim oUpload
Set oUpload= new cUpload
With oUpload

	.EnabledAspUpload = False
	.EnabledImageSize = TRUE
	.EnabledLog = False
	.AutoRename = True
	.Overwrite = False
	.SetPath "files\"
	.Load
	.UploadOnly "Images"
While Not .Eof

	If cLng(.Files("Size"))>(700*1024) then Response.write ("L'immagine è troppo grande")
	If .Files("Height")>=400 or .Files("Width")>=400 then
		Response.write ("Le dimensioni dell'immagine " &_
		.GetFileName() &" non sono corrette (" &_
		.Files("Height") &"x" & .Files("Width") &"): File non caricato" )
	else
	
			While Not .EOF
					  .Save
			response.Write "il file " & .GetFileName &" è stato salvato <br>"

' Inserimento dei valori
' DB --------------------------------------	
					
										strConnect = "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("mdb/db.mdb")
									Set objConn = Server.CreateObject ("ADODB.Connection")
									Set objRec = Server.CreateObject ("ADODB.Recordset")
										objConn.Open strConnect
										SQL = "SELECT * from Tabella1 WHERE id = (16)"
									Set RSb = objConn.Execute (SQL)
					
					' SE L'ID NON ESISTE NEL DB LO INSERISCO			
										If RSb.EOF And RSb.BOF Then 
										
												objRec.Open "Tabella1", strConnect, 0, 2, 2
												objRec.AddNew
												objRec("titolo") = .Form("Titolo")
												objRec("percorso") = .GetFileName 'GetCompletePathFile
												objRec.Update
												objConn.Close
											Set Objrec = Nothing
											Set ObjConn = Nothing
											
									    Else
					' SE L'ID ESISTE NEL DB LO AGGIORNO
												SQL_CL  = "UPDATE Tabella1 SET titolo = '"&.Form("Titolo")&"', percorso = '"&.GetFileName&"' WHERE id = (16)"
												objConn.Execute (SQL_CL)
												objConn.Close
											Set Objrec = Nothing
											Set ObjConn = Nothing
									    End If
	
' DB --------------------------------------	
' FINE GESTIONE DB					

			.MoveNext
			Wend
	
 		.Save
	end if
	
.MoveNext
Wend
End With
Set oUpload = Nothing

%>
 

fabiusRiders

Nuovo Utente
23 Gen 2011
26
0
0
www.ridersitalia.it
ecco il codice:

<form action="upload_db_inserzioni.asp?AD_ID=<%=AD_ID %>" method="post" enctype="multipart/form-data" name="form1">
<table width="500" align="center" cellspacing="5">
<tr valign="middle">
<td align="right" nowrap class="textBold">Utente</td>

<td class="textGray"> <%= Session("MM_Username") %> <input Type="hidden" name="AD_POSTER" type="text" class="form" value="<%= Session("MM_Username") %>" size="5" maxlength="5"/> </td>
</tr>

<tr valign="baseline">
<td></td>
<td nowrap align="left"><font color="#000000" size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>Carica la Foto del tuo annuncio </strong></font> </td>

</tr>

<tr valign="baseline">
<td nowrap align="right"><font color="#000000" size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>Foto Copertina</strong></font></td>
<td><input name="AD_IMAGE" type="file" id="Image" size="45"> <br><font color="red" size="1" face="Verdana, Arial, Helvetica, sans-serif"> </font></td>
<tr valign="middle">
<td align="right" valign="top" nowrap class="textBold">
&nbsp;</td>
<td> &nbsp;</td>
</tr>



<tr valign="baseline">
<td nowrap align="right"> </td>

<td><input type="hidden" name="AD_APPROVED" value="0">
<input name="submit" type="submit" value="Inserisci">
<input type="reset" name="Submit" value="Reimposta"> <br><font color="red" size="1" face="Verdana, Arial, Helvetica, sans-serif">Dopo che clicchi Inserisci, Attendere il caricamento del File, può volerci qualche minuto!!</font></td>
</tr>
</table>

</form>
 

Paolo69

Moderatore
Membro dello Staff
MOD
18 Feb 2010
555
13
18
Italy
www.caprioli.info
Ho risolto modificando il codice in questa maniera:
Codice:
<%

	Session("MM_Username") = "Paolo" ' questa riga cancellala, è solo per provare
	Session("AD_ID") = 25 ' qui metti il valore dell'id reale

%>
<table width="500" align="center" cellspacing="5">
<form action="upload_db_inserzioni.asp" method="post" enctype="multipart/form-data">
<input Type="hidden" name="AD_POSTER" type="text" class="form" value="<%= Session("MM_Username") %>" size="5" maxlength="5"/>
	<tr>
        <td align="right" nowrap class="textBold">Utente</td>
        <td class="textGray"><%= Session("MM_Username") %></td>
    </tr>
    <tr valign="baseline">
    	<td></td>
    	<td nowrap align="left"><font color="#000000" size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>Carica la Foto del tuo annuncio </strong></font></td>
    </tr>
	<tr valign="baseline">
        <td nowrap align="right"><font color="#000000" size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>Foto Copertina</strong></font></td>
        <td><input name="AD_IMAGE" type="file" id="Image" size="45"> <br><font color="red" size="1" face="Verdana, Arial, Helvetica, sans-serif"> </font></td>
    </tr>
    <tr valign="middle">
        <td align="right" valign="top" nowrap class="textBold">
        &nbsp;</td>
        <td>&nbsp;</td>
    </tr>
	<tr valign="baseline">
		<td nowrap align="right"> </td>
		<td><input type="hidden" name="AD_APPROVED" value="0">
        <input name="submit" type="submit" value="Inserisci">
        <input type="reset" name="Submit" value="Reimposta"> <br><font color="red" size="1" face="Verdana, Arial, Helvetica, sans-serif">Dopo che clicchi Inserisci, Attendere il caricamento del File, può volerci qualche minuto!!</font></td>
	</tr>
</form>     
</table>
Come vedi in testa la variabile AD_ID la valorizzo come sessione e non con il Request.QueryString o Request.Form.

Il codice upload:
Codice:
<!--#include file="upload.asp"-->
<%

	AD_ID = Session("AD_ID")
	If AD_ID < 1 Then
		response.write (errormsg)
		response.end
	End If


Dim oUpload
Set oUpload= new cUpload
With oUpload

	.EnabledAspUpload = False
	.EnabledImageSize = TRUE
	.EnabledLog = False
	.AutoRename = True
	.Overwrite = False
	.SetPath "files\"
	.Load
	.UploadOnly "Images"
While Not .Eof

	If cLng(.Files("Size"))>(700*1024) then Response.write ("L'immagine è troppo grande")
	If .Files("Height")>=400 or .Files("Width")>=400 then
		Response.write ("Le dimensioni dell'immagine " &_
		.GetFileName() &" non sono corrette (" &_
		.Files("Height") &"x" & .Files("Width") &"): File non caricato" )
	else
	
			While Not .EOF
					  .Save
			response.Write "il file " & .GetFileName &" è stato salvato <br>"

' Inserimento dei valori
' DB --------------------------------------

										strConnect = "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("mdb/db.mdb")
									Set objConn = Server.CreateObject ("ADODB.Connection")
									Set objRec = Server.CreateObject ("ADODB.Recordset")
										objConn.Open strConnect
										SQL = "SELECT * from ADS WHERE AD_ID = "&AD_ID
									Set RSb = objConn.Execute (SQL)
					
					' SE L'ID NON ESISTE NEL DB LO INSERISCO			
										If RSb.EOF And RSb.BOF Then 
										
												objRec.Open "ADS", strConnect, 0, 2, 2
												objRec.AddNew
											'	objRec("titolo") = .Form("Titolo")
												objRec("AD_IMAGE") = .GetFileName 'GetCompletePathFile
												objRec.Update
												objConn.Close
											Set Objrec = Nothing
											Set ObjConn = Nothing
											
									    Else
					' SE L'ID ESISTE NEL DB LO AGGIORNO
												SQL_CL  = "UPDATE ADS SET AD_IMAGE = '"&.GetFileName&"' WHERE AD_ID = "&AD_ID
												objConn.Execute (SQL_CL)
												objConn.Close
											Set Objrec = Nothing
											Set ObjConn = Nothing
									    End If


								' distruggo la sessione
									Session.Contents.Remove(Session("AD_ID")) 

	
' DB --------------------------------------	
' FINE GESTIONE DB					

			.MoveNext
			Wend
	
 		.Save
	end if
	
.MoveNext
Wend
End With
Set oUpload = Nothing

%>
ho cercato di ricalcare le tue variabili...
Paolo
 
Ultima modifica:

Paolo69

Moderatore
Membro dello Staff
MOD
18 Feb 2010
555
13
18
Italy
www.caprioli.info
Ciao Paolo
Grazie per il tuo tempo..
Ho copiato il codice che mi hai inviato, l'upload funziona, ma non scrive il nome dell'imagine nel db, il che è molto strano :confused:

...non scrive il nome del file nel DB perchè la variabile non viene valorizzata, se noti in testa al codice ove vi è il form ho valorizzato la variabile ID in una session in modo da renderla disponibile anche durante l'inserimento nel DB. Ad inserimento effettuato la variabile viene distrutta.
Codice:
Session("AD_ID") = 25 ' qui metti il valore dell'id reale
 

fabiusRiders

Nuovo Utente
23 Gen 2011
26
0
0
www.ridersitalia.it
Paolooo
Funzionaaa.. :quote::quote: risolto

se l'immagine è inferiore a 700 pixel la carica e scrive nel db il percorso, mentre
se supera i 700 pixel rilancia errore e non uppa nulla... e non modifica il db..

se ti serve ti invio il codice!!
 

fabiusRiders

Nuovo Utente
23 Gen 2011
26
0
0
www.ridersitalia.it
Ecco!
<%
AD_ID = request("AD_ID")
if AD_ID < 1 then
response.write (errormsg)
response.end
end if

Dim oUpload
Set oUpload= new cUpload
With oUpload
'La riga seguente impoosta la connessione al database e la tabella di inserimento dati
'La connesione e la tabella verranno aperti con il metodo oUpload.Database.Open()
.SetDatabase "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.MapPath("../mdb-database/DUclassified.mdb"),"SELECT * from ADS where AD_ID = " & AD_ID & ";"
.EnabledAspUpload = False
.EnabledImageSize = True
.EnabledLog = False
.AutoRename = True
.Overwrite = False
.SetPath "../public\immagini_bacheca\"
.Load
.MoveFirst
While Not .Eof
if cLng(.Files("Size"))>(700*1024) then
NumFiles = .Count()
Response.write "0 Files caricati su " & NumFiles &" : controlla le dimensioni della foto. <h1>Deve essere inferiore a 700 pixel</h1> tra qualche secondo sarai rimandato alla pagina di gestione"
response.end
Set oUpload = Nothing
else
.Database.Open()
While Not .EOF
.Save
response.Write "il file <strong>" & .GetFileName &"</strong> è; stato salvato correttamente <br> <h1>l'annuncio sarà visibile dopo l'approvazione, grazie da tutto lo staff</h1><br> Tra qualche secondo sarai indirizzato alla tua pagina per gestire i tuoi annunci"


'Inserimento dei valori

.Database.Fields("AD_APPROVED") = .Form("AD_APPROVED")
.Database.Fields("AD_IMAGE") = .GetFileName

'Inserimento
.Database.update
' FINE GESTIONE DB

.MoveNext
Wend

.Save
end if

.MoveNext
Wend
End With
Set oUpload = Nothing

%>
 
Discussioni simili
Autore Titolo Forum Risposte Data
S [RISOLTO] Fatal error in Upload Multiplo di immagini PHP 2
N [RISOLTO] Upload jpeg e pdf in folder (PHP) PHP 16
L (risolto) MySQL 0
B getElementById su piu id(Risolto) Javascript 7
L Esercitarsi con Js [RISOLTO] Javascript 4
C [RISOLTO]Inserimento variabile php in input html PHP 20
L risolto visualizzazione e ordinamento dati PHP 1
moustache [RISOLTO] SQL PHP IIS PHP 8
Sergio Unia Ricezione email con destinatari multipli [Risolto] PHP 2
L update tabelle in php mysql [risolto] PHP 6
M Semplice visualizzatore di immagini [risolto con plugin wp] PHP 7
L [RISOLTO] Stampa a video risultato count in html PHP 13
L [RISOLTO] Eliminare una discussione creata PHP 3
tomorc [HTML] Problema con scroll bar (risolto) HTML e CSS 0
A [PHP] Problema query insert [RISOLTO] PHP 14
B [PHP] recuperare IP dei server in load balancing [RISOLTO] PHP 3
K [RISOLTO] Problema Griglia Php+Mysql PHP 13
S [RISOLTO] aggiorna tabella da select option asp classic Classic ASP 7
elpirata [RISOLTO][Javascript] Datapicker e autocompletamento campo input Javascript 2
elpirata [RISOLTO][Mysql] Problema insert valori apostrofati MySQL 1
elpirata [RISOLTO][Mysql] Contare le occorrenze in un campo tipo varchar MySQL 2
G [MS Access] Gestione biglietti [RISOLTO] MS Access 2
G [MS Access] Casella combinata & Query [RISOLTO] MS Access 4
G [MS Access] Query mese corrente con conteggio [RISOLTO] MS Access 2
M [RISOLTO]Windows media player non mi funziona più su win 10 pro 64 bit Windows e Software 2
C [RISOLTO][PHP] Errore di sintassi PHP 8
IT9-Gpp [RISOLTO] Leggere variabile restituita da success Ajax 3
Kolop [RISOLTO][PHP] Problema Pagination PHP 2
C [RISOLTO][PHP] Funzione ONclick PHP 14
C [RISOLTO][PHP] Conteggio righe di una tabella PHP 4
N [PHP] Utilizzo variabili di sessione [Risolto] PHP 13
Tommy03 [RISOLTO][PHP] Webserver o devserver? PHP 2
Sergio Unia Recupero dati da una vecchia versione MySql [Risolto] MySQL 4
spider81man [PHP] Problemi cancellazione dato su DB [RISOLTO] PHP 1
A [RISOLTO]Inserimento Immagini da pc a MySql PHP 15
A [PHP] RISOLTO Invio Mail con Tabella PHP 2
felino Risolto - [Wordpress][WooCommerce] PayPal Checkout e campi di fatturazione WordPress 2
elpirata [PHP][RISOLTO] Sommare gli importi estratti da un ciclo while PHP 3
elpirata [PHP][RISOLTO] Effettuare la somma dei tempi di lavorazione PHP 3
elpirata [PHP] [RISOLTO]Sovrascrivere testo in una tabella PHP 2
A [RISOLTO]Recuperare dati inviati con json tramite php PHP 4
C [RISOLTO][PHP] Passaggio variabili senza refresh di pagina PHP 7
elpirata [PHP][RISOLTO] Errore di tipo Notice: Undefined index - Come risolvere quando si hanno tante var PHP 10
S Problema in PHP per invio file XML - RISOLTO- PHP 8
A [Javascript] [RISOLTO] Doppio "submit", in uno stesso "Form" , che puntino ad "action" diversi Javascript 1
marino51 [Risolto]videochat di messenger ha smesso di funzionare sul telefonino Smartphone e tablet 1
A [Javascript] [HTML] RISOLTO...Allungare un box all'apertura della pagina No Mouse over Javascript 9
ken_korn [Javascript][Risolto] browser.tab.Tabs.favIconUrl non funziona Javascript 5
A [RISOLTO] HighChart e PHP PHP 4
A [RISOLTO] PHP Selezionare tutti i file con stessa estensione PHP 2

Discussioni simili