Foros del Web » Programando para Internet » PHP »

problemas al usar la función "rename()"

Estas en el tema de problemas al usar la función "rename()" en el foro de PHP en Foros del Web. hola, bueno les cuento que hice un código el cual me permite subir un archivo a un directorio dado, funciona perfecto, el problema es que ...
  #1 (permalink)  
Antiguo 26/08/2011, 14:25
Avatar de ras_chalo  
Fecha de Ingreso: junio-2010
Mensajes: 369
Antigüedad: 14 años, 5 meses
Puntos: 6
Pregunta problemas al usar la función "rename()"

hola, bueno les cuento que hice un código el cual me permite subir un archivo a un directorio dado, funciona perfecto, el problema es que estoy intentandolo renombrar con la función "rename" y no me funciona...

a continuación el código:

Código PHP:
Ver original
  1. //SUBIR LA IMAGEN            
  2.             $nombre_archivo=$_FILES['archivo']['name'];
  3.            
  4.             if(isset($_FILES['archivo'])){
  5.             /* Guardar el archivo */
  6.            
  7.            
  8.             $destino= "productos/" .$_FILES['archivo']['name'];
  9.             if(move_uploaded_file($_FILES['archivo']['tmp_name'],$destino )){
  10.                 $result1= rename($nombre_archivo, 'xxxx.jpg');
  11.                 echo '<img src="images/yes.png"/> El archivo '.$_FILES['archivo']['name']. ' ha sido guardao correctamente. <br/> ';
  12.             }else{
  13.             echo '<p class="error">Error al subir el archivo.</p> ';
  14.             }
  15.             }
  16.             //FIN SUBIR IMAGEN

me devuelve el siguiente error:

Warning: rename(fondo_derecha.jpg,xxxx.jpg) [function.rename]: No error in C:\wamp\www\...\validar_inventario.php on line 84

Bueno ojala puedan ayudarme..de ante mano muchas gracias!!!
  #2 (permalink)  
Antiguo 26/08/2011, 14:33
 
Fecha de Ingreso: agosto-2010
Ubicación: Tenerife
Mensajes: 893
Antigüedad: 14 años, 3 meses
Puntos: 202
Respuesta: problemas al usar la función "rename()"

dado que veo un C\wamp\...

"rename() is working on Linux/UNIX but not working on Windows on a directory containing a file"

http://www.php.net/manual/es/function.rename.php#102274
__________________
Pensaba que internet era una gran biblioteca de sabiduría, hasta que comprendí que un libro no puede tener mil páginas llenas de faltas de ortografía... :(
  #3 (permalink)  
Antiguo 26/08/2011, 14:40
Avatar de darkasecas  
Fecha de Ingreso: marzo-2005
Ubicación: SantaCata, NL, Mexico
Mensajes: 1.553
Antigüedad: 19 años, 8 meses
Puntos: 77
Respuesta: problemas al usar la función "rename()"

Cita:
Iniciado por IEKK Ver Mensaje
dado que veo un C\wamp\...

"rename() is working on Linux/UNIX but not working on Windows on a directory containing a file"

http://www.php.net/manual/es/function.rename.php#102274
Porque pones una cita imcompleta? :|

"rename() is working on Linux/UNIX but not working on Windows on a directory containing a file formerly opened within the same script. "

No aplica para lo que comenta en el post.


En cuanto al tema, si no me equivoco tienes que pasarle la ruta completa del archivo ?
  #4 (permalink)  
Antiguo 26/08/2011, 18:19
 
Fecha de Ingreso: septiembre-2010
Ubicación: Corrientes - Argentina
Mensajes: 37
Antigüedad: 14 años, 2 meses
Puntos: 2
Respuesta: problemas al usar la función "rename()"

prueba simplemente así, como lo dijo darkasecas.
Código PHP:
Ver original
  1. //SUBIR LA IMAGEN            
  2.             $nombre_archivo=$_FILES['archivo']['name'];
  3.            
  4.             if(isset($_FILES['archivo'])){
  5.             /* Guardar el archivo */
  6.            
  7.            
  8.             $destino= "productos/" .$_FILES['archivo']['name'];
  9.             if(move_uploaded_file($_FILES['archivo']['tmp_name'],$destino )){
  10.                 $result1= rename($destino, 'productos/xxxx.jpg');
  11.                 echo '<img src="images/yes.png"/> El archivo '.$_FILES['archivo']['name']. ' ha sido guardao correctamente. <br/> ';
  12.             }else{
  13.             echo '<p class="error">Error al subir el archivo.</p> ';
  14.             }
  15.             }
  16.             //FIN SUBIR IMAGEN

ahora bien para que hacer dos pasos si al momento de hacer el move_uploaded_file ya puedes renombrarlo.

Código PHP:
Ver original
  1. //SUBIR LA IMAGEN            
  2.             $nombre_archivo=$_FILES['archivo']['name'];
  3.            
  4.             if(isset($_FILES['archivo'])){
  5.             /* Guardar el archivo */
  6.            
  7.             $nombreNuevoDelArchivo='ejemplo.jpg'; // aca por ejemplo pones el nombre nuevo
  8.             $destino= "productos/" .$nombreNuevoDelArchivo; // el destino del archivo subido toma el nombre nuevo sin necesidad de hacer rename.
  9.             if(move_uploaded_file($_FILES['archivo']['tmp_name'],$destino )){
  10.                 echo '<img src="images/yes.png"/> El archivo '.$_FILES['archivo']['name']. ' ha sido guardao correctamente. <br/> ';
  11.             }else{
  12.             echo '<p class="error">Error al subir el archivo.</p> ';
  13.             }
  14.             }
  15.             //FIN SUBIR IMAGEN
__________________
Si esta vida te da la espalda, siempre puede tocarle el c...

Última edición por juanmanuel19686; 26/08/2011 a las 18:23 Razón: Me olvide de algo.
  #5 (permalink)  
Antiguo 27/08/2011, 13:10
Avatar de ras_chalo  
Fecha de Ingreso: junio-2010
Mensajes: 369
Antigüedad: 14 años, 5 meses
Puntos: 6
Respuesta: problemas al usar la función "rename()"

Cita:
Iniciado por juanmanuel19686 Ver Mensaje
prueba simplemente así, como lo dijo darkasecas.
Código PHP:
Ver original
  1. //SUBIR LA IMAGEN            
  2.             $nombre_archivo=$_FILES['archivo']['name'];
  3.            
  4.             if(isset($_FILES['archivo'])){
  5.             /* Guardar el archivo */
  6.            
  7.            
  8.             $destino= "productos/" .$_FILES['archivo']['name'];
  9.             if(move_uploaded_file($_FILES['archivo']['tmp_name'],$destino )){
  10.                 $result1= rename($destino, 'productos/xxxx.jpg');
  11.                 echo '<img src="images/yes.png"/> El archivo '.$_FILES['archivo']['name']. ' ha sido guardao correctamente. <br/> ';
  12.             }else{
  13.             echo '<p class="error">Error al subir el archivo.</p> ';
  14.             }
  15.             }
  16.             //FIN SUBIR IMAGEN

ahora bien para que hacer dos pasos si al momento de hacer el move_uploaded_file ya puedes renombrarlo.

Código PHP:
Ver original
  1. //SUBIR LA IMAGEN            
  2.             $nombre_archivo=$_FILES['archivo']['name'];
  3.            
  4.             if(isset($_FILES['archivo'])){
  5.             /* Guardar el archivo */
  6.            
  7.             $nombreNuevoDelArchivo='ejemplo.jpg'; // aca por ejemplo pones el nombre nuevo
  8.             $destino= "productos/" .$nombreNuevoDelArchivo; // el destino del archivo subido toma el nombre nuevo sin necesidad de hacer rename.
  9.             if(move_uploaded_file($_FILES['archivo']['tmp_name'],$destino )){
  10.                 echo '<img src="images/yes.png"/> El archivo '.$_FILES['archivo']['name']. ' ha sido guardao correctamente. <br/> ';
  11.             }else{
  12.             echo '<p class="error">Error al subir el archivo.</p> ';
  13.             }
  14.             }
  15.             //FIN SUBIR IMAGEN
Muchas gracias!
el segundo ejemplo me sirvió :)
solo una duda, porque al renombrar el archivo con $nuevo_nombre= $nom_prod .'.jpg'; cambia el formato de la imagen??...esta correcto?

es decir, si subo una imagen en formato PNG, por la linea de código que menciono se cambia a JPG, esta bien eso?, no traería problemas a futuro?

Saludos!

Etiquetas: usar
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 21:25.