Salve a tutti,
uso da parechcio tempo un sistema di upload (trovato qui e leggermente modificato) che non mi da nesusn problema.

Ora però i problemi sono apparsi durante la rinominazione del file.
Mi spiego, all'atto dell'inserimento del record e della relativa imamgine nel db (ovviamente solo il riferimento all'immagine), il nome del file mi viene rinominato correttamente.
Quando però vado a modificare il record e voglio cambiare l'immagine, il codice che ho creato mi verifica se è già presente un'immagine, preleva il nome (senza estensione) e lo attribuisce alla nuova immagine che carico. Viceversa se non è presente nessuna immagine, semplicemente carica la nuova immagine rinominandola. Così facendo per quel record ho il nome dell'immagine sempre uguale (e diverso da qualsiasi altra immagine di qualsiasi altro record).

Il problema che non riesco a capire, è perchè se mi trova già un'immagine, non attribuisca alla nuova immagine lo stesso nome.
Vi posto un po' di codice così è più chiaro:

codice:
Dim percorso_agg
percorso_agg = "images/"

ByteRicevuti = Request.TotalBytes

if ByteRicevuti > 0 then
	DatiRicevuti = Request.BinaryRead(ByteRicevuti)
	FileBinario = RSBinaryToString(DatiRicevuti)
	FirmaFile = left(FileBinario,instr(FileBinario,"" & vbCrLf)-1)
	ArrPezzi = split(FileBinario,FirmaFile)

	for item = 1 to ubound(ArrPezzi)-1
		Inizio = instr(ArrPezzi(item),"" & vbCrLf & "" & vbCrLf)
		Intestazione = left(ArrPezzi(item),Inizio-1)
		Inizio = Inizio + len("" & vbCrLf) + len("" & vbCrLf)
	    	ContenutoFile = mid(ArrPezzi(item),Inizio,len(ArrPezzi(item))-Inizio-1)

		' Recupero i campi se sono compilati
		
		if instr(Intestazione,"img1_old") > 0 then							' nome immagine1 già sul server
			img1_old = ContenutoFile
		end if
				
		if instr(Intestazione,"data_ins") > 0 then
			data_ins = ContenutoFile
		end if
		
		if instr(Intestazione,"id") > 0 then
			id = ContenutoFile
		end if
		
		if instr(Intestazione,"ora") > 0 then
			ora = ContenutoFile
		end if
		
		if instr(Intestazione,"sezione") > 0 then
			sezione = ContenutoFile
			sezione = replace(sezione, "'", "''")
		end if
		
		
		' Qui recupero il file da uploadare (se presente) e lo scrivo
		' sul server
		
		'FILE 1
		
		if instr(Intestazione,"img1") > 0 then
		    i = instr(Intestazione,"filename=")
			j = instr(i + 10,Intestazione,chr(34))
			NomeUpload = mid(Intestazione,i + 10,j-i-10)
			i = instrRev(NomeUpload,"\")
			if i<>0 then
    		    NomeFile = mid(NomeUpload,i + 1)
    		else
    			NomeFile = NomeUpload
    		end if
      		if i<>0 then
				Set FSO = CreateObject("Scripting.FileSystemObject")
				Upload1 = True
				DimensioneFile1 = len(ContenutoFile)
				EstensioneFile1 = right(ContenutoFile,3)
					If instr(Intestazione,"img1_old") > 0 then
						NomeFile1 = img1_old & right(NomeUpload,4)
					Else
						NomeFile1 = "img1_" & sezione & "_" & data_ins & "_" & ora & right(NomeUpload,4)
					End If     			Set textStream = FSO.CreateTextFile(server.mappath(percorso_agg & NomeFile1), True, False)
    			textStream.Write ContenutoFile
    			textStream.Close
    			Set textStream = Nothing
	   			Set FSO = Nothing
    	   end if
		end if
In neretto il controllo se il campo img1_old è compilato o meno. Se lo è, attribuisce alla variabile NomeFile1 il valore di img1_old e l'estensione del file effettivamente uploaddato. Altrimenti attribuisce a NomeFile1 il valore di un certo numero di variabili.

Purtroppo nonostante il controllo, l'immagine uploaddata viene sempre e comunque rinominata secondo la condizione Else, anche se img1_old è maggiore di 0 (zero).

Qualcuno ha qualche suggerimento?

Grazie 10.000