Inserire nome file contenuti in cartella in database con controllo esistenza file in db

  • Creatore Discussione Creatore Discussione giro
  • Data di inizio Data di inizio

giro

Nuovo Utente
24 Mar 2015
11
0
1
Ciao a tutti sono incappato nel seguente problema
Ho una cartella dove carico le mie foto framite FTP per comodità e velocità
Una volta caricate le immagine nella cartella utilizzo uno script che "legge" le immagini presenti nella cartella selezionata e li salva in un db Fino qui tutto OK
Il problema nasce quando aggiungo nuove immagini nella cartella a questo punto utilizzando lo script forrei caricare tutte le nuove immagini nel db ( e non quelle gia caricate precedentemente
utilizzando il seguente scipt non mi da nessuno errore cicla e non carica le immagini.....

credp do dover ciclale le immagini contenunte nella cartella con quelle nel db...... ma mi sono un po arenato.....
.
PHP:
id = request("id")


'connessione al database
Set Conn = Server.createobject("ADODB.Connection")
Conn.connectionstring="DRIVER={Microsoft Access Driver (*.mdb)};DBQ="& Server.Mappath("/mdb-database/ov.mdb")
Conn.Open


set fso = server.createObject("scripting.fileSystemObject")
set folder = fso.getFolder(server.mapPath("gallery") & "/" & id & "/")
set files = folder.files
'controllo file in cartella
for each file in files
    rfn = Lcase(right(file.name,4))    
    if rfn = ".jpg" or rfn = ".JPG" or rfn = ".png"  or rfn = ".bmp" then
'effetto il controllo se la foto risulta gia presente 
	SQLL="Select * from foto where diritto='"&file.name& "'"
	Set rs = Server.CreateObject("ADODB.Recordset")
    rs.Open SQLL, conn ,3,3

    if rs.eof  then
'NON è presente, memorizzo
'####################################################################################


        SQL = "INSERT INTO foto (diritto,id_cat) VALUES ('"& file.name&"',"& id &")"
        Conn.Execute SQL

    end if


		else
		Response.Redirect "fotogallery.asp?txt=socio+aggiunto+con+successo+!!!"
	end if
next


set files = nothing
set folder = nothing
set fso = nothing  


Conn.close
set Conn = nothing

response.Redirect "fotogallery.asp"
 
nessuno sa darmi un piccolo aiuto su come procedere ?
ho provato a modifare lo scipt cosi... ma nulla
io vorrei effettuare un controllo nel db e inserire le immagine che non sono ancora presenti ( es ho 4 immagini via ftp ne aggiungo 5 vorrei inserire nel db il nome delle 5 nuove immagini e non delle 5 piu le 4 gia presenti

PHP:
<%
id = request("id")

'connessione al database
Set Conn = Server.createobject("ADODB.Connection")
Conn.connectionstring="DRIVER={Microsoft Access Driver (*.mdb)};DBQ="& Server.Mappath("/mdb-database/ov.mdb")
Conn.Open

set fso = server.createObject("scripting.fileSystemObject")
set folder = fso.getFolder(server.mapPath("gallery") & "/" & id & "/")
set files = folder.files
'controllo file in cartella
for each file in files
    rfn = Lcase(right(file.name,4))    
    if rfn = ".jpg" or rfn = ".JPG" or rfn = ".png"  or rfn = ".bmp" then
'effetto il controllo se la foto risulta gia presente 
	Sql = "SELECT diritto FROM foto  WHERE diritto = '" & file.name & "'"
Set RS = Conn.Execute(Sql)
  If RS.EOF Then
    Conn.Execute("INSERT INTO foto (diritto) VALUES('" & file.name & "')")
	Response.Write(file.name)
	Response.Write(" è stato aggiunto al database.")
	'qui dovrei passare all ' immagine successiva
  Else
	Response.Write(file.name)
	Response.Write(" è già presente nel database.")


set files = nothing
set folder = nothing
set fso = nothing  




response.Redirect "fotogallery.asp"
RS.Close
Set RS = Nothing
Conn.close
set Conn = nothing
End If
end if
Next
 
Ciao ,
essendo un recordset un contenitore di informazioni che può essere una riga del db o più righe
io tempo fa ho avuto un problema simile,
ho risolto tirando via il confronto alla query (la parte where)
ho analizzato ogni singolo record
con do while not record.eof --> loop
se nome presente passa avanti aggiungendo un numero in progressione a una variabile (esempio variabile=variabile+1)
e(basta che trovi un solo nome puoi anche uscire dal ciclo con exit do dato che immagine presente )
se non trovi nulla variabile=0
dopo di che dopo il ciclo do loop
fai un semplice if
if variabile = 0 then
'nessun nome memorizzato
'e qui esegui la query di inserimento
else
response.write "immagine già inserita"
end if

Ciao
 

Discussioni simili