Ver Mensaje Individual
  #2 (permalink)  
Antiguo 08/07/2003, 03:44
ToKaTa
 
Fecha de Ingreso: marzo-2001
Ubicación: Gran Canaria
Mensajes: 381
Antigüedad: 24 años, 2 meses
Puntos: 2
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