Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] limitar extension y renombrar al subir imagen

Estas en el tema de limitar extension y renombrar al subir imagen en el foro de PHP en Foros del Web. Hola, estoy intentado subir imagenes a la web y despues de mucho buscar lo mejor que encontre para mi necesidades fue esto pero necesito limitar ...
  #1 (permalink)  
Antiguo 17/09/2013, 18:06
 
Fecha de Ingreso: agosto-2013
Ubicación: cadiz
Mensajes: 35
Antigüedad: 10 años, 7 meses
Puntos: 0
limitar extension y renombrar al subir imagen

Hola, estoy intentado subir imagenes a la web y despues de mucho buscar lo mejor que encontre para mi necesidades fue esto pero necesito limitar las extensiones a .jpg .png ..etc y tambien necesito renombrar de forma aleatoria las imagenes para que no tener conflictos alguien me puede ayudar?? muchas gacias!!

Código PHP:
<?php
 
    
// Datos de conexión a configurar
    
$user "usuario";
    
$pass "pass";
    
$bbdd "base de datos";
 
    
// Ruta donde se guardarán las imágenes
    
$directorio $_SERVER['DOCUMENT_ROOT'].'/uploads/';
 
    
// Conecto a la BBDD
    
$dbh mysql_connect("localhost"$user$pass);
    
$db mysql_select_db($bbdd);
 
    
// Recibo los datos de la imagen
    
$nombre $_FILES['imagen']['name'];
    
$tipo $_FILES['imagen']['type'];
    
$tamano $_FILES['imagen']['size'];
 
    
// Muevo la imagen desde su ubicación
    // temporal al directorio definitivo
    
move_uploaded_file($_FILES['imagen']['tmp_name'],$directorio.$nombre);
 
  
// Guardamos en la BBDD
    
$sql "INSERT into TABLAIMAGENES (nombre_archivo) values ('$nombre')";
    
$resultado mysql_query($sql);
 
    
// Por si queremos la ID asignada a la imagen
    
$id mysql_insert_id();
?>
  #2 (permalink)  
Antiguo 17/09/2013, 18:28
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: limitar extension y renombrar al subir imagen

¿Buscaste temas similares y no encontraste nada que te sea de utilidad o hay que llevarte de la mano desde cero?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 18/09/2013, 05:10
 
Fecha de Ingreso: agosto-2013
Ubicación: cadiz
Mensajes: 35
Antigüedad: 10 años, 7 meses
Puntos: 0
Respuesta: limitar extension y renombrar al subir imagen

Hola Pateketrueke entiendo que mi pregunta puede ser muy simple pero yo no llevo varios dias probando y no lo consigo todo los demas que encuentro o falla algo o no se ajusta a mis necesidades mientras espero respuesta sigo buscando pero nada de todas formas gracias
  #4 (permalink)  
Antiguo 18/09/2013, 08:32
 
Fecha de Ingreso: agosto-2013
Ubicación: cadiz
Mensajes: 35
Antigüedad: 10 años, 7 meses
Puntos: 0
Respuesta: limitar extension y renombrar al subir imagen

Ya solucione la extension y tamaña añadiendo est
Código PHP:
if (!((strpos($tipo"gif") || strpos($tipo"jpeg")) && ($tamano <=3000000))) 
pero como puedo renombrar la imagen ??
  #5 (permalink)  
Antiguo 18/09/2013, 08:34
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: limitar extension y renombrar al subir imagen

Mira este ejemplo:
Código PHP:
Ver original
  1. $foo = 'candy.bar';
  2. $baz = '/buzz/';
  3.  
  4. echo $baz . uniqid('') . $foo;
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 18/09/2013, 10:18
 
Fecha de Ingreso: agosto-2013
Ubicación: cadiz
Mensajes: 35
Antigüedad: 10 años, 7 meses
Puntos: 0
Respuesta: limitar extension y renombrar al subir imagen

Cita:
Iniciado por pateketrueke Ver Mensaje
Mira este ejemplo:
Código PHP:
Ver original
  1. $foo = 'candy.bar';
  2. $baz = '/buzz/';
  3.  
  4. echo $baz . uniqid('') . $foo;
lo siento pero no comprendo tu ejemplo
  #7 (permalink)  
Antiguo 18/09/2013, 10:24
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: limitar extension y renombrar al subir imagen



¿Lo ejecutaste si quiera?

No hay que ser un genio para probar y ver los resultados.

Inicialmente comentaste que querías nombrar de manera única los archivos para evitar colisiones, y pues precisamente uniqid() te permite genera identificadores únicos.

Si eso no te da ninguna pista entonces no veo cómo ayudarte, ¿o necesitas que te de tu código corregido y adaptado para que entiendas?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #8 (permalink)  
Antiguo 18/09/2013, 13:27
 
Fecha de Ingreso: agosto-2013
Ubicación: cadiz
Mensajes: 35
Antigüedad: 10 años, 7 meses
Puntos: 0
Respuesta: limitar extension y renombrar al subir imagen

Si gracias!! seria de gran ayuda "es broma" sigo dandole vueltas al codigo aver si lo consigo poner gracias por el aporte
  #9 (permalink)  
Antiguo 18/09/2013, 14:40
 
Fecha de Ingreso: agosto-2013
Ubicación: cadiz
Mensajes: 35
Antigüedad: 10 años, 7 meses
Puntos: 0
Respuesta: limitar extension y renombrar al subir imagen

Cita:
Iniciado por pateketrueke Ver Mensaje
Mira este ejemplo:
Código PHP:
Ver original
  1. $foo = 'candy.bar';
  2. $baz = '/buzz/';
  3.  
  4. echo $baz . uniqid('') . $foo;
me funciono perfecto gracias
  #10 (permalink)  
Antiguo 18/09/2013, 14:41
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: limitar extension y renombrar al subir imagen

Muestra cómo aplicaste la solución para que le sirva a alguien más.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #11 (permalink)  
Antiguo 18/09/2013, 14:42
 
Fecha de Ingreso: agosto-2013
Ubicación: cadiz
Mensajes: 35
Antigüedad: 10 años, 7 meses
Puntos: 0
Respuesta: limitar extension y renombrar al subir imagen

Ya solo me queda redimencionar la imagen a una medida exacta
  #12 (permalink)  
Antiguo 18/09/2013, 14:44
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 5 meses
Puntos: 175
Respuesta: limitar extension y renombrar al subir imagen

que bueno... en el buscador del foro tienes muchos temas ya resueltos de lo que necesitas...
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #13 (permalink)  
Antiguo 18/09/2013, 15:38
Avatar de Dalam  
Fecha de Ingreso: septiembre-2010
Mensajes: 409
Antigüedad: 13 años, 7 meses
Puntos: 56
Respuesta: limitar extension y renombrar al subir imagen

este codigo no es bueno. pues si en el nombre del archivo contiene gif, te lo reconocera como valido aunque la extension sea otra.
Yo te voy a ayudar con esto y luego te digo lo de redimensionar las imagenes.

Código PHP:
Ver original
  1. <?php
  2.  
  3.  //Primero creamos una funcion que nos de la extension
  4.  function get_extension($_filename,$_array_extensions){
  5.     if(in_array(substr(strrchr($_filename, '.'), 1) , $_array_extensions) return true;
  6.     return false;
  7.  }
  8.  
  9.  $_array = array('gif','jpeg','png');//Array con las extensiones que queremos aceptar
  10.  //luego solo tienes que utilizar la funcion
  11.  //imagina que tenemos en la variable $nombre el nombre del archivo junto con su extension
  12.  //para seguir con tu codigo seria algo asi
  13.  
  14.  if(get_extension($_nombre,$_array) && $_tamano <= 3000000){
  15.     // Aqui todo el codigo que necesites ejecutar si se cumplen las condiciones de extension
  16.     // Y de tamaño
  17.  }
  18. ?>

Espero que te sea de ayuda.
  #14 (permalink)  
Antiguo 19/09/2013, 09:58
 
Fecha de Ingreso: agosto-2013
Ubicación: cadiz
Mensajes: 35
Antigüedad: 10 años, 7 meses
Puntos: 0
Respuesta: limitar extension y renombrar al subir imagen

Cita:
Iniciado por Dalam Ver Mensaje
este codigo no es bueno. pues si en el nombre del archivo contiene gif, te lo reconocera como valido aunque la extension sea otra.
Yo te voy a ayudar con esto y luego te digo lo de redimensionar las imagenes.

Código PHP:
Ver original
  1. <?php
  2.  
  3.  //Primero creamos una funcion que nos de la extension
  4.  function get_extension($_filename,$_array_extensions){
  5.     if(in_array(substr(strrchr($_filename, '.'), 1) , $_array_extensions) return true;
  6.     return false;
  7.  }
  8.  
  9.  $_array = array('gif','jpeg','png');//Array con las extensiones que queremos aceptar
  10.  //luego solo tienes que utilizar la funcion
  11.  //imagina que tenemos en la variable $nombre el nombre del archivo junto con su extension
  12.  //para seguir con tu codigo seria algo asi
  13.  
  14.  if(get_extension($_nombre,$_array) && $_tamano <= 3000000){
  15.     // Aqui todo el codigo que necesites ejecutar si se cumplen las condiciones de extension
  16.     // Y de tamaño
  17.  }
  18. ?>

Espero que te sea de ayuda.

Sii es de mucha ayuda gracias pero me da error en linea 5 puede ser del codigo? o mio?
  #15 (permalink)  
Antiguo 19/09/2013, 10:11
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: limitar extension y renombrar al subir imagen

El error es de ambos, uno por escribir el código con errores de sintaxis, y el otro por copiarlo y pegarlo sin si quiera revisar.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #16 (permalink)  
Antiguo 19/09/2013, 11:32
 
Fecha de Ingreso: agosto-2013
Ubicación: cadiz
Mensajes: 35
Antigüedad: 10 años, 7 meses
Puntos: 0
Respuesta: limitar extension y renombrar al subir imagen

paketetrueke mis conocimientos son muy muy basicos por no decir nulo no se corregir el codigo..
  #17 (permalink)  
Antiguo 19/09/2013, 12:36
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: limitar extension y renombrar al subir imagen

Analiza la linea del error y observa si los paréntesis están completos, a simple vista se nota que hace falta un paréntesis al final.

Por muy básicos que sean tus conocimientos el leer e interpretar código mentalmente es fundamental, eso no se hace programando, se hace leyendo código.

Deberías mejor tus hábitos en ese aspecto.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #18 (permalink)  
Antiguo 19/09/2013, 12:43
 
Fecha de Ingreso: agosto-2013
Ubicación: cadiz
Mensajes: 35
Antigüedad: 10 años, 7 meses
Puntos: 0
Respuesta: limitar extension y renombrar al subir imagen

ops tienes razon me fije en todo menos e lo mas simple un pequeño )

Gracias!!
  #19 (permalink)  
Antiguo 19/09/2013, 12:46
Avatar de Dalam  
Fecha de Ingreso: septiembre-2010
Mensajes: 409
Antigüedad: 13 años, 7 meses
Puntos: 56
De acuerdo Respuesta: limitar extension y renombrar al subir imagen

Cita:
Iniciado por Dalam Ver Mensaje
este codigo no es bueno. pues si en el nombre del archivo contiene gif, te lo reconocera como valido aunque la extension sea otra.
Yo te voy a ayudar con esto y luego te digo lo de redimensionar las imagenes.

Código PHP:
Ver original
  1. <?php
  2.  
  3.  function get_extension($_filename,$_array_extensions){
  4.     if(in_array(substr(strrchr($_filename, '.'), 1) , $_array_extensions)) return true;
  5.     return false;
  6.  }
  7.  
  8.  $_array = array('gif','jpeg','png');
  9.  
  10.  if(get_extension($_nombre,$_array) && $_tamano <= 3000000){
  11.     // Aqui todo el codigo que necesites ejecutar si se cumplen las condiciones de extension
  12.  }
  13. ?>

Como lo escribi al vuelo no me di cuenta de que faltaba cerrar unos parentesis.
Si tienes alguna otra duda mandame un mensaje.
  #20 (permalink)  
Antiguo 19/09/2013, 13:33
 
Fecha de Ingreso: agosto-2013
Ubicación: cadiz
Mensajes: 35
Antigüedad: 10 años, 7 meses
Puntos: 0
Respuesta: limitar extension y renombrar al subir imagen

Ya solo me queda redimensionar la imagen

Última edición por manolilorenzo; 19/09/2013 a las 13:41
  #21 (permalink)  
Antiguo 19/09/2013, 14:39
Avatar de Dalam  
Fecha de Ingreso: septiembre-2010
Mensajes: 409
Antigüedad: 13 años, 7 meses
Puntos: 56
Información Respuesta: limitar extension y renombrar al subir imagen

Esto ya es algo mas sensible a los requerimientos que tengas.
No se si puedes variar el ratio de la imagen.
Tampoco se porque la guardas en una DB cuando lo puedes guardar en un archivo.
Tambien puedes cambiarle convertir el archivo a otra extension y puedes optimizar la imagen para que pese menos.
Asi mismo, tambien te digo que cuando cribas las imagenes en el codigo que te di, deberias antes mirar lo que te ocupa una vez resampleada la imagen, por que cuando la cambies, el tamaño del archivo se reducira.
Si puedes perder calidad, puedes pasarlas a jpeg y expecificar el tipo de perdida.

Todo esto y mas se puede hacer con la libreria GD de PHP facilmente, pero deberas buscar un poco y saber lo que necesitas con anterioridad para no perderte a la hora de programar.
si lo que necesitas es solo resamplear la imagen, mira este link [URL="http://php.net/manual/en/function.imagecopyresampled.php"]http://php.net/manual/en/function.imagecopyresampled.php[/URL]

Si necesitas ayuda manda un mensaje, y miramos que se puede hacer.
  #22 (permalink)  
Antiguo 19/09/2013, 14:52
 
Fecha de Ingreso: agosto-2013
Ubicación: cadiz
Mensajes: 35
Antigüedad: 10 años, 7 meses
Puntos: 0
Respuesta: limitar extension y renombrar al subir imagen

Cita:
Iniciado por Dalam Ver Mensaje
Esto ya es algo mas sensible a los requerimientos que tengas.
No se si puedes variar el ratio de la imagen.
Tampoco se porque la guardas en una DB cuando lo puedes guardar en un archivo.
Tambien puedes cambiarle convertir el archivo a otra extension y puedes optimizar la imagen para que pese menos.
Asi mismo, tambien te digo que cuando cribas las imagenes en el codigo que te di, deberias antes mirar lo que te ocupa una vez resampleada la imagen, por que cuando la cambies, el tamaño del archivo se reducira.
Si puedes perder calidad, puedes pasarlas a jpeg y expecificar el tipo de perdida.

Todo esto y mas se puede hacer con la libreria GD de PHP facilmente, pero deberas buscar un poco y saber lo que necesitas con anterioridad para no perderte a la hora de programar.
si lo que necesitas es solo resamplear la imagen, mira este link [URL="http://php.net/manual/en/function.imagecopyresampled.php"]http://php.net/manual/en/function.imagecopyresampled.php[/URL]

Si necesitas ayuda manda un mensaje, y miramos que se puede hacer.
gracias voy a mirar el enlace y no lo guardo en la base de datos hay solo guardo la ruta de la imagen y la imagen la tengo que redimensionar a 160x220

Etiquetas: 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 04:17.