A ver si me aclaro. Supongo que la estructura de la tabla donde almacenas los datos de las fotos es algo como esto:
Cita: idImagen -- Long -- autonumerico -- Clave -- Unico ------> Id. del la imagen
idFK ------ Long -- Clave Externa ---------------------> relacion 1 - varios con otra tabla
FileName -- String -----------------------------------> Nombre de la imagen
size ------ Double ----------------------------------> Tamaño en Bytes de la imagen
descripcion -- Text ----------------------------------> Informacion extra
Yo te recomiendo que siempre cambies el nombre de la imagen antes de guardarla, identificandola con su clave externa (que puede ser el identificador del cliente que sube la imagen)
Por ejemplo. Ha entrado un usuario que va a subir 2 imágenes a su anuncio donde ya existia una. Digamos que el usuario esta identificado como UserID=25
En la tabla anterior ya tenemos hecha una inserción anterior:
Código:
dim dir
dir=Server.MapPath("DOWNLOAD2")
Set Upload=Server.CreateObject("Persits.Upload.1")
Upload.OverwriteFiles=False
On Error Resume Next
Upload.SetMaxSize 1048576 'Limitado a 1MB
Count = Upload.SaveToMemory
' Posicion de la imagen
i = 1
' nombre que le vamos a poner
nombre = "img_" & UserID & "_"
' path donde se va a guardar la imagen
path = "c:\inetpub\wwwroot\misitio\images\usuarios\"
' Buscamos en la bd el ultimo registro del usuario UserID si lo hubiera
' (se supone que ya esta abierta la conexion)
set rsCheck = conn.execute("SELECT FileName From tablaimagen WHERE idFK=" & UserID & " ORDER BY FileName DESC")
if not rsCheck.EOF
pri = instrrev(rsCheck("FileName"),".")
sec = instrrev(rsCheck("FileName"),"_")
res = mid(rsCheck("FileName"),sec+1,pri-sec)
if isNumeric(res) then
res = res + 1
else
res = i
end if
else
res = i
end if
rsCheck.close
set rsCheck = nothing
For Each File in Upload.Files
nombreFinal = nombre & res & mid(File.Path,instrrev(File.Path,"."))
' aqui lo graba
File.SaveAs(path & nombreFinal)
res = res + 1
next
Es una propuesta, desde luego. Sin embargo, no me gusta usar componentes que no son mios o que no dispongo del codigo fuente ya que dependes de terceros. Yo usaria el código que te dice
birkin72 pero se lo que es cambiar código ya hecho
Una cosa. No se si File.Path contiene el nombre original de la imagen. Chequealo (principalmente por que lo uso para sacar el tipo de imagen). Tambien puedes usar la propiedad
ImageType para componer el nombre:
nombreFinal = nombre & res & "." & lcase(File.ImageType)
dependerá de ti :)
Aqui tienes la
referencia del objeto.
Espero que te haya sido util.
Una cosa más: No he puesto la inserción de los datos en la BD, pero ya es solo un simple insert dentro del bucle for ... next
insert into tablaimagen values ('',id, UserID, nombreFinal, File.Size, Upload.Form("DESC_"&File.Name))
Un saludo