Foros del Web » Programando para Internet » PHP »

Renombrar imagen subida

Estas en el tema de Renombrar imagen subida en el foro de PHP en Foros del Web. Hola a todos, necesito vuestra ayuda ;) Estoy subiendo a través de un formulario una imagen a un servidor. El problema es q me gustaría ...
  #1 (permalink)  
Antiguo 21/02/2013, 03:57
 
Fecha de Ingreso: febrero-2013
Ubicación: Asturias
Mensajes: 10
Antigüedad: 11 años, 2 meses
Puntos: 0
Renombrar imagen subida

Hola a todos, necesito vuestra ayuda ;)


Estoy subiendo a través de un formulario una imagen a un servidor.

El problema es q me gustaría renombrar el fichero para que cada imagen que subo para un cliente tenga un numero, es decir, si es la primera imagen q subo para el cliente "x" que la imagen sea "1.jpg", si es la segunda q subo q sea "2.jpg".

NOTA: Utilizo el Framework de Zend.

El código q tengo es este:


public function subirImagen($id_cliente)
{
mkdir('imagenesClientes/'.$id_cliente, 0777);
$upload = new Zend_File_Transfer_Adapter_Http();
$upload->setDestination('imagenesClientes/'.$id_cliente);
foreach($upload->getFileInfo() as $file => $info){
$upload->receive($file);



}

}


MILLLONES DE GRACIAS POR VUESTRA AYUDA
  #2 (permalink)  
Antiguo 21/02/2013, 04:01
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Renombrar imagen subida

rename( ) puedes renombrar archivos

http://es.php.net/manual/es/function.rename.php
  #3 (permalink)  
Antiguo 21/02/2013, 04:58
 
Fecha de Ingreso: febrero-2013
Ubicación: Asturias
Mensajes: 10
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Renombrar imagen subida

Perdona, pero soy bastante nueva en php, y no acabo de entender bien el metodo rename :(

Probe a poner:


public function subirImagen($id_mascota)
{
mkdir('imagenesMascotas/'.$id_mascota, 0777);
$upload = new Zend_File_Transfer_Adapter_Http();
$upload->setDestination('imagenesMascotas/'.$id_mascota);
foreach($upload->getFileInfo() as $file => $info){
$upload->receive($file);
rename($file, "1.jpg");
}

}

Con el objetivo de ver si me renombraba pero si exito
  #4 (permalink)  
Antiguo 21/02/2013, 05:03
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Renombrar imagen subida

creo que te falta la ruta 'imagenesMascotas/'

Código PHP:
Ver original
  1. rename($file, "imagenesMascotas/1.jpg");

prueba haber si fue ese el problema
  #5 (permalink)  
Antiguo 21/02/2013, 05:12
 
Fecha de Ingreso: febrero-2013
Ubicación: Asturias
Mensajes: 10
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Renombrar imagen subida

Aii malas noticias no va :(

Perdona q te este mareando.

Probe a hacer tambien esto pero sin éxito:


public function subirImagen($id_mascota)
{
mkdir('imagenesMascotas/'.$id_mascota, 0777);
$upload = new Zend_File_Transfer_Adapter_Http();
$upload->setDestination('imagenesMascotas/'.$id_mascota);
foreach($upload->getFileInfo() as $file => $info){
$upload->addFilter('Rename', array( $file['1']['tmp_name'],
'imagenesMascotas/' . $id_mascota . '.jpg', true ));
$upload->receive($file);
}
}

}

MIL GRACIAS POR TU AYUDA.

PD: Desesperacion en aumento
  #6 (permalink)  
Antiguo 21/02/2013, 05:21
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Renombrar imagen subida

haber prueba tal que asi ?

Código PHP:
Ver original
  1. rename('imagenesMascotas/'.$id_mascota.'.jpg','imagenesMascotas/1.jpg');

En el primer atributo tienes que introducir una variable que contenga la ruta completa del archivo y el archivo por ejemplo imagenesmascotas/pepito.jpg

yo no se que hace la clase new Zend_File_Transfer_Adapter_Http(); yo no he usado nunca zend framework

Última edición por webankenovi; 21/02/2013 a las 05:28
  #7 (permalink)  
Antiguo 21/02/2013, 05:33
 
Fecha de Ingreso: febrero-2013
Ubicación: Asturias
Mensajes: 10
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Renombrar imagen subida

Nada, no funciona :(

El problema q veo tb es que no siempre voy a subir archivos .jpg, pueden ser varias extensiones, el tema es q tendría que sacar también la extension.

He probado mil metodos como por ejemplo el explode pero no me va, mi idea era, sacar la extension y concatenarsela al "1" y... ¡voila, archivo renombrado! pero al final mi gozo en un pozo.
  #8 (permalink)  
Antiguo 21/02/2013, 05:40
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Renombrar imagen subida

Para sacar la extension tienes pathinfo http://www.php.net/manual/es/function.pathinfo.php

por cierto $id_mascota que contiene el nombre solo o nombre.extension o el que?
  #9 (permalink)  
Antiguo 21/02/2013, 06:08
 
Fecha de Ingreso: febrero-2013
Ubicación: Asturias
Mensajes: 10
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Renombrar imagen subida

He intentado sacar la extension

$informacion = pathinfo('imagenesMascotas/'.$id_mascota.'/'.$file);
echo $informacion['extension'];

pero tp va :s :s, nose que hare mal


el id_mascota es un identificador de las mascotas, concretamente la clave primaria, es un número, mascota "X" con id_mascota "30"
  #10 (permalink)  
Antiguo 21/02/2013, 06:19
 
Fecha de Ingreso: febrero-2013
Ubicación: Asturias
Mensajes: 10
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Renombrar imagen subida

El error q me sale, por el cual n funciona lo de infopath, es que "extension" no esta definido.
  #11 (permalink)  
Antiguo 21/02/2013, 06:21
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Renombrar imagen subida

Código PHP:
Ver original
  1. public function subirImagen($id_cliente)
  2. {
  3. mkdir('imagenesClientes/'.$id_cliente, 0777);
  4. $upload = new Zend_File_Transfer_Adapter_Http();
  5. $upload->setDestination('imagenesClientes/'.$id_cliente);
  6. foreach($upload->getFileInfo() as $file => $info){
  7.  
  8. $informacion = pathinfo($file);
  9.  
  10. // $informacion['extension'];
  11.  
  12. rename('imagenesClientes/'.$id_cliente.'/'.$file,'imagenesClientes/'.$id_cliente.'/archivo'.$informacion['extension']);
  13.  
  14. $upload->receive($file);
  15.  
  16. }
  17.  
  18. }

Me gustaria saber exactamente que obtienes con $upload->getFileInfo()

Etiquetas: formulario, renombrar, subida
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 13:35.