Foros del Web » Programando para Internet » PHP »

Renombrar imagen php si ya existe a otro nombre

Estas en el tema de Renombrar imagen php si ya existe a otro nombre en el foro de PHP en Foros del Web. Buenos dias a todos, para serles sinceros , mis conocimientos en php son escasos por ahora, pero me estoy esmerando en saber todo lo que ...
  #1 (permalink)  
Antiguo 18/09/2010, 17:53
Avatar de evanshi21  
Fecha de Ingreso: septiembre-2010
Mensajes: 8
Antigüedad: 13 años, 7 meses
Puntos: 0
Sonrisa Renombrar imagen php si ya existe a otro nombre

Buenos dias a todos, para serles sinceros , mis conocimientos en php son escasos por ahora, pero me estoy esmerando en saber todo lo que pueda.

El motivo de mi consulta esm el siguiente. Estoy instalando una aplicacion para clasificados de autos en joomla. Sin embargo esta apliciacion no renombra la imagen al subirla por lo cual si subes en otra ocasion una con el mismo nombre , sale un error que tiene que se renombrada.

Aqui les muesetro el codigo

Código PHP:
Ver original
  1. if (strlen($screenshot) > 0 and $screenshot != "none") {
  2.  
  3.             if(file_exists($ASPabsolut ."/" . $ag_pathimages ."/$screenshot_name")) {
  4.  
  5.             echo "<script>alert('Error!File $screenshot_name already exists'); window.history.go(-1);</script>\n";
  6.  
  7.         }
  8.  
  9.             if (move_uploaded_file($screenshot, $ASPabsolut . DS . $ag_pathimages . DS . $screenshot_name)) {
  10.  
  11.                 resize_image($ASPabsolut . DS . $ag_pathimages . DS . $screenshot_name, $ASPabsolut . DS . $ag_pathimages . DS . $screenshot_name, $ag_picturewidth, $ag_thumbcreation, $ag_picturequality);
  12.  
  13.                 echo "<script> alert('Image $screenshot_name as been Uploaded'); </script>";
  14.  
  15.                 resize_image($ASPabsolut . DS . $ag_pathimages . DS . $screenshot_name, $ASPabsolut . DS . $ag_paththumbs . DS . "tn_".$screenshot_name, $ag_thumbwidth, $ag_thumbcreation, $ag_thumbquality);
  16.  
  17.             }
  18.  
  19.         }


ese mismo codigo es repetido 15 veces por que es posible subir 15 imagenes,
Alguien que me de alguna referencia de como lo puedo adaptar a que se origine un nombre aleatorio o secuencial preferiblemente para evitar que no se reemplacen las fotos

Toda ayuda es bienvenida

  #2 (permalink)  
Antiguo 18/09/2010, 18:08
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Renombrar imagen php si ya existe a otro nombre

podrías usar uniqid() para generar un nombre único cada ves...
http://php.net/uniqid
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 18/09/2010, 18:16
Avatar de evanshi21  
Fecha de Ingreso: septiembre-2010
Mensajes: 8
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Renombrar imagen php si ya existe a otro nombre

Muchas Gracias por la pronta respuesta.

Bueno antes de postear aqui ya tenia como una hora buscando en google como hacerlo, encontre mucahs maneras pero no estaba seguro como implementarlas,

hice un par de pruebas con unique id pero para serles sincero como a penas estoy en proceso de apredizaje no estoy seguro dondme va el unique id, lo puse en varioso lugares pero no me funciono y pienso que quizas lo estoy haciendo mal
  #4 (permalink)  
Antiguo 18/09/2010, 18:47
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Renombrar imagen php si ya existe a otro nombre

bien, vamos por partes...

podríamos decirlo así: si el problema consiste en renombrar algo, ¿donde esta comparando el nombre? ¿como se cual es el nombre?

en base a estas cuestiones llegamos aquí:
Código PHP:
if(file_exists($ASPabsolut ."/" $ag_pathimages ."/$screenshot_name")) { 
lo cual significaría "si el archivo $ASPabsolut ."/" . $ag_pathimages ."/$screenshot_name" existe, entonces..."

de ahí resaltamos la variable del nombre, que es la que finalmente nos sirve para completar la tarea...

ahora te resta a ti resolver la siguiente cuestión: ¿donde esta definida la variable a reemplazar?

o en otras palabras, ajustar el contenido de dicha variable de acuerdo a nuestra necesidad lógica:
Código PHP:
$screenshot_name $nuevo_nombre_ajustado
etc...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 18/09/2010, 18:56
Avatar de evanshi21  
Fecha de Ingreso: septiembre-2010
Mensajes: 8
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Renombrar imagen php si ya existe a otro nombre

gracias por la colaboración, le voy a meter mente a eso que me dijiste y tambien usare de a ayuda tu link anterior , dejame ver si logro hacerlo
  #6 (permalink)  
Antiguo 18/09/2010, 19:45
Avatar de evanshi21  
Fecha de Ingreso: septiembre-2010
Mensajes: 8
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Renombrar imagen php si ya existe a otro nombre

Hola nuevamente, estuve arduamente metiendole mente a esto y gracias a tu guia esto fue lo que se me ocurrio, ya me diran si es una loquera o si voy por el camino correcto.

Código PHP:
Ver original
  1. if (strlen($screenshot) > 0 and $screenshot != "none") {
  2.  
  3.             if(file_exists($ASPabsolut ."/" . $ag_pathimages ."/$screenshot_name")) {
  4.  
  5.             $a = uniqid(auto);
  6.  echo rename("screenshot_name","$a");
  7.  echo "<br>";
  8.  
  9.         }

estuve haciendo varias pruebas y creo que esta es la que más se acerca.
sin embargo cuando intento subir , sube la foto con el mismo nombre y me lanza este error

Warning: rename(screenshot_name,auto4c9569fe04b13) [function.rename]: No such file or directory in /home/poxicoco/public_html/autoestilo/components/com_autostand/autostand.php on line 398
  #7 (permalink)  
Antiguo 18/09/2010, 21:15
Avatar de evanshi21  
Fecha de Ingreso: septiembre-2010
Mensajes: 8
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Renombrar imagen php si ya existe a otro nombre

Bueno de tantas pruebas lo he conseguido con este codigo


Código PHP:
Ver original
  1. if (strlen($screenshot) > 0 and $screenshot != "none") {
  2.  
  3.             if(file_exists($ASPabsolut ."/" . $ag_pathimages ."/$screenshot_name")) {
  4.  
  5.             $a = uniqid(auto);
  6.             $screenshot_name = $a;
  7.         }


muchas gracias por tu orientación, en realidad no sabia nada de php, pero me parece grandioso que como con tu pequeña orientación pude lograr esto solo.

Muchas gracias por todo, ya esta resuelto.

Última edición por evanshi21; 02/11/2011 a las 23:56 Razón: problema resuelto

Etiquetas: existe, nombre, renombrar
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 03:48.