Foros del Web » Programando para Internet » PHP »

Renombrar archivo al subirlo

Estas en el tema de Renombrar archivo al subirlo en el foro de PHP en Foros del Web. Hola. ¿Cómo puedo renombrar un archivo al mismo momento de subirlo? Concretamente es para eliminarle los posibles espacios en blanco del nombre del archivo. Usar ...
  #1 (permalink)  
Antiguo 06/11/2005, 10:54
Avatar de Rafael
Modegráfico
 
Fecha de Ingreso: marzo-2003
Mensajes: 9.028
Antigüedad: 21 años, 1 mes
Puntos: 1826
Renombrar archivo al subirlo

Hola.

¿Cómo puedo renombrar un archivo al mismo momento de subirlo?

Concretamente es para eliminarle los posibles espacios en blanco del nombre del archivo.

Usar rename como que no me sirve, ya que lo hace ya que está arriba.

Si uso por ejemplo

Código PHP:
  $Nuevo $Viejo;
  
$Nuevo ereg_replace (" ""_"$Nuevo);
  
rename($Viejo$Nuevo); 
y el archivo $Nuevo ya existía me marca error, aparte de que el usuario ya gastó tiempo en subir otra vez el archivo viejo inutilmente.

¿Hay manera?
  #2 (permalink)  
Antiguo 06/11/2005, 11:36
Avatar de Roken.NL  
Fecha de Ingreso: octubre-2005
Mensajes: 16
Antigüedad: 18 años, 6 meses
Puntos: 0
Lo que puedes hacer es meterle un código que compruebe antes de cambiar el nombre si el supuesto nombre por el que se le canviaría ya existe (file_exists) y si existe añadirle un una serie de letras al azar...

Por ejemplo:

Código PHP:
<?php
  $Nuevo 
$Viejo;
  
$Nuevo ereg_replace (" ""_"$Nuevo);
if(
file_exists($Nuevo)){
$rand=rand(000,999);
$Nuevo $Nuevo $rand;


  
rename($Viejo$Nuevo);
Es posible que salga el rand dos veces igual, pero lo veo muy dificil, por no decir imposible, porque tiene que haber mucha casualidad para que salga el mismo nombre de archivo con el mísmo número... jeje.

Seguro que se puede hacer de otra forma sin un rand() más segura, pero solo se me ocurre esa...

EDITADO: Se me olvidó comentar que también tendrías que hacer algo para que separe la extensión del nombre del archivo. Porque sinó el nombre quedaría por ejemplo documento.doc345
  #3 (permalink)  
Antiguo 06/11/2005, 12:02
Avatar de Rafael
Modegráfico
 
Fecha de Ingreso: marzo-2003
Mensajes: 9.028
Antigüedad: 21 años, 1 mes
Puntos: 1826
OK, no problem, con eso le busco:
  #4 (permalink)  
Antiguo 06/11/2005, 22:41
Avatar de Rafael
Modegráfico
 
Fecha de Ingreso: marzo-2003
Mensajes: 9.028
Antigüedad: 21 años, 1 mes
Puntos: 1826
Lo que acabé haciendo es modificar el mismo array FILES

$NombreNuevo = $_FILES['ArchivoASubir']['name'];
$NombreNuevo = ereg_replace (" ", "_", $NombreNuevo);
$_FILES['ArchivoASubir']['name'] = $NombreNuevo;

Así lo asigna en el mismo proceso.

Saludos.
  #5 (permalink)  
Antiguo 09/06/2007, 23:10
Avatar de adex  
Fecha de Ingreso: marzo-2002
Ubicación: Lima, Perú, América Latina
Mensajes: 445
Antigüedad: 22 años, 1 mes
Puntos: 0
Exclamación Re: Renombrar archivo al subirlo

Hola Rafael, tengo casi el mismo problema al subir fotos y no he logrado adaptar la funcion a mi sistema, aver si me hechas una mano por favor:

Código PHP:
$dirCATiser "e:/www/fotos/";

copy($dataFotoPrin,$dirCATiser.$dataFotoPrin_name);

mysql_query("UPDATE $ProductoData SET dataFotoPrin='$dataFotoPrin_name' WHERE id_data=$mod_i"); 
  #6 (permalink)  
Antiguo 05/07/2007, 22:43
Avatar de adex  
Fecha de Ingreso: marzo-2002
Ubicación: Lima, Perú, América Latina
Mensajes: 445
Antigüedad: 22 años, 1 mes
Puntos: 0
Re: Renombrar archivo al subirlo

Un maestro PHP que me heche una manita plz...?
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:32.