En una de mis paginas los usuarios pueden subir muchas imagenes, y como corria el riesgo de que algunas se llamaran igual lo que hago es que al subirlas les cambio el nombre por uno que genero de manera aleatrio y asi se que no estara repetido el nombre. A continuacion te pongo resumido lo que hago.
Suponiendo que el campo del formulario de llama archivoGrafico:
Código:
<%
Set Upload = Server.CreateObject("Persits.Upload.1")
Count = Upload.Save(server.mapPath("/datos"))
For Each File in Upload.Files
if (File.Name = "archivoGrafico") then
archivoGrafico = nombreAleatorio(File.FileName)
call renombraArchivo("/datos/"&File.FileName,"/datos/"&archivoGrafico)
end if
Next
%>
Y las funciones a las que llamo son:
Código:
<%
'Esta funcion simplemnte cambia el nombre del archivo de
'origen por el nombre destino que le hayas pasado
function renombraArchivo(origen,destino)
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
rutaOrigen = Server.MapPath(origen)
rutaDestino = Server.MapPath(destino)
fso.MoveFile rutaOrigen, rutaDestino
Set fso = Nothing
end function
'Esta funcion te devyulve un nombre de archivo aleatorio
'(un numero enorme) que tiene la extension del que le pasaste
function nombreAleatorio(archivoOriginal)
Randomize
Variable = int((5000 - 1 + 1) * rnd + 1)
vectorArchivo = Split(archivoOriginal,".")
extension = vectorArchivo(ubound(vectorArchivo))
nombreAleatorio = Year(Now()) & Month(Now()) & Day(Now())
nombreAleatorio = nombreAleatorio & Hour(Now()) & Minute(Now())
nombreAleatorio = nombreAleatorio & Second(Now()) & "_"
nombreAleatorio = nombreAleatorio & Variable & "." & extension
end function
%>
Supongo que en tu caso la funcion nombreAleatorio podria ser algo como:
Código:
<%
function nombreAleatorio(archivoOriginal)
vectorArchivo = Split(archivoOriginal,".")
extension = vectorArchivo(ubound(vectorArchivo))
nombreAleatorio = Session("nombreUsuario")
nombreAleatorio = nombreAleatorio & Session("apellidoUsuario")
nombreAleatorio = nombreAleatorio & "." & extension
end function
%>
Espero que te sirva de algo...
ToKaTa.
P.D.1: MIra que he puesto muchas asignaciones que podrian haberse puesto en una solo linea, es solo para no descuadrar las tablas del foro, que lo acabo de previsulizar y se iban las lineas a tomar por saco....
P.D.2: POr si te preguntas por que uso:
extension = vectorArchivo(ubound(vectorArchivo))
en vez de:
extension = vectorArchivo(1)
Es solo por evitar un posible bug por si algun capullin de sube algo como:
miArchivo.pif.jpg
o algo por el estilo