Foros del Web » Programando para Internet » PHP »

Problema con los nombres de las imagenes al guardarla (Ayuda)

Estas en el tema de Problema con los nombres de las imagenes al guardarla (Ayuda) en el foro de PHP en Foros del Web. Hola amigos, tengo el siguiente codigo: Código PHP: <?php session_start (); $carpeta  =  'imgpastora/' ; // incluimos el archivo de conexion include ( '../../usuarios/reg/config.php' ); // recibimos el formulario if(isset( $_POST [ 'enviar' ]) &&  ...
  #1 (permalink)  
Antiguo 01/06/2009, 11:38
Avatar de rompeguesos  
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años, 1 mes
Puntos: 8
Pregunta Problema con los nombres de las imagenes al guardarla (Ayuda)

Hola amigos, tengo el siguiente codigo:

Código PHP:
<?php
session_start
();

$carpeta 'imgpastora/';

// incluimos el archivo de conexion
include ('../../usuarios/reg/config.php');
// recibimos el formulario
if(isset($_POST['enviar']) && $_POST['enviar'] == 'Enviar'){
// comprobamos que el formulario no envie campos vacios
if(!empty($_FILES['fichero']['tmp_name'] )&& $_POST['aceptacondiciones']){

//upload de imagen
if(is_uploaded_file($_FILES['fichero']['tmp_name'])) {
        
//Redimensionar imagen en caso de que lo necesite
include( "../jacobo/redimensionar.php" );

$ruta $_FILES['fichero']['tmp_name'];
$rutatemp $_FILES['fichero']['tmp_name'];  
$rutastr_replace(" """$ruta);
$tipo$_FILES['fichero']['type'];
if(!((
strpos($tipo"gif") || strpos($tipo"jpeg") || strpos($tipo"png")))) {
header("location: subirpastora.php?tipoimagen");  
return 
false;
}
else 
{
$destino $carpeta.$_FILES['fichero']['name'];
move_uploaded_file($rutatemp,$destino);
crearThumb$destino$destino500true );
}
       }

// hacemos el INSERT en la BD
$sqlInsertNot mysql_query("INSERT INTO galeriapastora
(imagen_pastora) VALUES ('"
.$_FILES['fichero']['name']."')",$db_link) or die(mysql_error());
// enviamos un mensaje de exito
$notok="Imagen publicada correctamente, puedes verla en la página de inicio.";
}else{
// si el formulario envia algun campo vacio
// enviamos un mensaje de error
$error="* ¡Atención! Recuerda haber insertado la imagen y recuerda haber aceptado<br> las condiciones.";
}
}
?>
El problema es que cuando suben una imagen si hay otra con el mismo nombre me la repite luego al mostrarla aunque sean imagenes diferentes. Que puedo hacer para evitar que se guarden con los mismos nombres en la base de datos?
  #2 (permalink)  
Antiguo 01/06/2009, 11:40
 
Fecha de Ingreso: febrero-2009
Ubicación: cancun!
Mensajes: 898
Antigüedad: 15 años, 2 meses
Puntos: 15
Respuesta: Problema con los nombres de las imagenes al guardarla (Ayuda)

asiganles un nuevo nombre a cada uno por ejemplo
nombre mas la fecha o un numero aleatorio
saludines!!
__________________
WHERE IS MY BLUE SUNNY SKY??
pd: todos los karmas son bienvenidos :D
  #3 (permalink)  
Antiguo 01/06/2009, 11:42
Avatar de rompeguesos  
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años, 1 mes
Puntos: 8
Respuesta: Problema con los nombres de las imagenes al guardarla (Ayuda)

y como hago eso de añadirles al nombre la fecha?
  #4 (permalink)  
Antiguo 01/06/2009, 11:44
Avatar de jaao_death  
Fecha de Ingreso: abril-2009
Ubicación: Murcia/españa
Mensajes: 229
Antigüedad: 15 años
Puntos: 6
Respuesta: Problema con los nombres de las imagenes al guardarla (Ayuda)

ami no me gusta mucho que hayan cosas tan descriptivas como es el nombre de una imágen(su contenido) que pertenece a un usuario X, lo que suelo hacer es->
al nombre, le agrego el valor devuelto por time() y todo lo encripto con md5().
__________________
Mucha seguridad nunca es suficiente.... Por una red segura
El señor ilustre obscurece nuestras mentes
Usas Linux? http://www.dudalibre.com/gnulinuxcounter
  #5 (permalink)  
Antiguo 01/06/2009, 11:47
 
Fecha de Ingreso: febrero-2009
Ubicación: cancun!
Mensajes: 898
Antigüedad: 15 años, 2 meses
Puntos: 15
Respuesta: Problema con los nombres de las imagenes al guardarla (Ayuda)

$destino = $carpeta.$_FILES['fichero']['name'].time();

algo asi saludines!!
__________________
WHERE IS MY BLUE SUNNY SKY??
pd: todos los karmas son bienvenidos :D
  #6 (permalink)  
Antiguo 01/06/2009, 11:47
Avatar de jaao_death  
Fecha de Ingreso: abril-2009
Ubicación: Murcia/españa
Mensajes: 229
Antigüedad: 15 años
Puntos: 6
Respuesta: Problema con los nombres de las imagenes al guardarla (Ayuda)

intenta esto:
Código PHP:
$image explode('.'$_FILES['fichero']['name']);
$imageN md5($image[0].time());
$destino $carpeta.$imageN.$image[1]; 
__________________
Mucha seguridad nunca es suficiente.... Por una red segura
El señor ilustre obscurece nuestras mentes
Usas Linux? http://www.dudalibre.com/gnulinuxcounter
  #7 (permalink)  
Antiguo 01/06/2009, 11:53
Avatar de rompeguesos  
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años, 1 mes
Puntos: 8
Respuesta: Problema con los nombres de las imagenes al guardarla (Ayuda)

Harvestmoon lo he probado y al subir la imagen luego al mostrarla en la pagina sale como que no existe con la crucecita en la esquinita :D.

Jaoo_death donde agrego eso en mi codigo? tengo que modificar algo en el actual?
  #8 (permalink)  
Antiguo 01/06/2009, 12:00
 
Fecha de Ingreso: febrero-2009
Ubicación: cancun!
Mensajes: 898
Antigüedad: 15 años, 2 meses
Puntos: 15
Respuesta: Problema con los nombres de las imagenes al guardarla (Ayuda)

Cita:
Harvestmoon lo he probado y al subir la imagen luego al mostrarla en la pagina sale como que no existe con la crucecita en la esquinita :D.
si guardas las rutas en un BD debes mostrarlas con el mismo nombre con la q subes tu imagen
__________________
WHERE IS MY BLUE SUNNY SKY??
pd: todos los karmas son bienvenidos :D
  #9 (permalink)  
Antiguo 01/06/2009, 12:05
Avatar de jaao_death  
Fecha de Ingreso: abril-2009
Ubicación: Murcia/españa
Mensajes: 229
Antigüedad: 15 años
Puntos: 6
Respuesta: Problema con los nombres de las imagenes al guardarla (Ayuda)

Código PHP:
<?php
session_start
();

$carpeta 'imgpastora/';

// incluimos el archivo de conexion
include ('../../usuarios/reg/config.php');
// recibimos el formulario
if(isset($_POST['enviar']) && $_POST['enviar'] == 'Enviar'){
// comprobamos que el formulario no envie campos vacios
if(!empty($_FILES['fichero']['tmp_name'] )&& $_POST['aceptacondiciones']){

//upload de imagen
if(is_uploaded_file($_FILES['fichero']['tmp_name'])) {
        
//Redimensionar imagen en caso de que lo necesite
include( "../jacobo/redimensionar.php" );

$ruta $_FILES['fichero']['tmp_name'];
$rutatemp $_FILES['fichero']['tmp_name'];  
$rutastr_replace(" """$ruta);
$tipo$_FILES['fichero']['type'];

if(!((
strpos($tipo"gif") || strpos($tipo"jpeg") || strpos($tipo"png")))) {
   
header("location: subirpastora.php?tipoimagen");  
   return 
false;
}
else 
{
   
$image explode('.'$_FILES['fichero']['name']);
   
$imageN md5($image[0].time());
   
$destino $carpeta.$imageN.'.'.$image[1];
   
move_uploaded_file($rutatemp,$destino);
   
crearThumb$destino$destino500true );
}
}

// hacemos el INSERT en la BD
$sqlInsertNot mysql_query("INSERT INTO galeriapastora
(imagen_pastora) VALUES ('{$destino}')"
,$db_link) or die(mysql_error());
// enviamos un mensaje de exito
$notok="Imagen publicada correctamente, puedes verla en la página de inicio.";
}else{
// si el formulario envia algun campo vacio
// enviamos un mensaje de error
$error="* ¡Atención! Recuerda haber insertado la imagen y recuerda haber aceptado<br> las condiciones.";
}
}
?>
__________________
Mucha seguridad nunca es suficiente.... Por una red segura
El señor ilustre obscurece nuestras mentes
Usas Linux? http://www.dudalibre.com/gnulinuxcounter

Última edición por jaao_death; 01/06/2009 a las 12:17 Razón: Falta punto de imágen antes de formato
  #10 (permalink)  
Antiguo 01/06/2009, 12:14
Avatar de rompeguesos  
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años, 1 mes
Puntos: 8
Respuesta: Problema con los nombres de las imagenes al guardarla (Ayuda)

me guarda la imagen asi : imgpastora/e6eb63bf99736a625dfa6834c1c65d4fjpg con tu modo Jaoo_deaht, eso no es correcto no? no deberia de acabar .jpg?
  #11 (permalink)  
Antiguo 01/06/2009, 12:16
Avatar de jaao_death  
Fecha de Ingreso: abril-2009
Ubicación: Murcia/españa
Mensajes: 229
Antigüedad: 15 años
Puntos: 6
Respuesta: Problema con los nombres de las imagenes al guardarla (Ayuda)

uy lo siento, ahora mismo lo corrigo. jeje.............................................. .
.................................................. ...........................
.................................................. ............................

Ya esta!
__________________
Mucha seguridad nunca es suficiente.... Por una red segura
El señor ilustre obscurece nuestras mentes
Usas Linux? http://www.dudalibre.com/gnulinuxcounter
  #12 (permalink)  
Antiguo 01/06/2009, 12:25
Avatar de rompeguesos  
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años, 1 mes
Puntos: 8
Respuesta: Problema con los nombres de las imagenes al guardarla (Ayuda)

jejeje vale ya va bien y la guarda como .jpg peor el problema que tengo es que en la base de datos me inserta la imagen con el nombre de la carpeta tambien "imgpastora" una cosa asi: imgpastora/ejemploooo.jpg cuando deberia de guardarse como: ejemplo.jpg solamente, eso a que se debe?
  #13 (permalink)  
Antiguo 01/06/2009, 12:43
 
Fecha de Ingreso: febrero-2009
Ubicación: cancun!
Mensajes: 898
Antigüedad: 15 años, 2 meses
Puntos: 15
Respuesta: Problema con los nombres de las imagenes al guardarla (Ayuda)

Cita:
$destino = $carpeta.$imageN.'.'.$image[1];
asi lo estas guardando
¬¬
solo guarda la imagen
el nonbre me refiero
$imageN
__________________
WHERE IS MY BLUE SUNNY SKY??
pd: todos los karmas son bienvenidos :D
  #14 (permalink)  
Antiguo 01/06/2009, 12:45
Avatar de rompeguesos  
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años, 1 mes
Puntos: 8
Respuesta: Problema con los nombres de las imagenes al guardarla (Ayuda)

he probado a ponerlo asi: $destino = $imageN.'.'.$image[1]; pero asi no me guarda la imagen en la carpeta "imgpastora" sino que me la guarda en el mismo directorio donde esta la pagina que tiene este codigo jeje que lio.. ¿alguna sugerencia?
  #15 (permalink)  
Antiguo 01/06/2009, 12:46
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 3 meses
Puntos: 9
Respuesta: Problema con los nombres de las imagenes al guardarla (Ayuda)

creo que seria mas practico a mi parecer guardarlo con todo y la ruta donde esta la imagen ( en mi caso) ya que seria mas rapido al concatenar con la etiqueta <img> cuando hagas tus consultas. bueno es tu decision :P
__________________
Quitenme la vida pero no la bebida.
  #16 (permalink)  
Antiguo 01/06/2009, 12:58
Avatar de rompeguesos  
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años, 1 mes
Puntos: 8
Respuesta: Problema con los nombres de las imagenes al guardarla (Ayuda)

jejejejej vale muchas gracias a todos ya he conseguido de que tambien se muestren, y esta ya todo funcionando prefectamente pero ahora mi ultima pregunta es: ¿asi es seguro de que nunca se repetiran o sigue habiendo posibilidad de que se repitan? jejejej

Saludos a todos.
  #17 (permalink)  
Antiguo 01/06/2009, 13:06
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 3 meses
Puntos: 9
Respuesta: Problema con los nombres de las imagenes al guardarla (Ayuda)

Si time() te devuelve la hora y los conviertes a md5() no creo que haya problemas ... aunque haya una pequeña probabilidad de que exactamente grabes una imagen en el mismo tiempo que otra ahi si tu imagen reemplazara a la que tiene el mismo nombre.... arriesgado no?


Y porke no haces el nombre del archivo con el ID del producto o usuario y concatenado con el numero de archivos que tiene ese usuario, esos elementos son unicos e irrepetibles
__________________
Quitenme la vida pero no la bebida.
  #18 (permalink)  
Antiguo 01/06/2009, 13:12
Avatar de rompeguesos  
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años, 1 mes
Puntos: 8
Respuesta: Problema con los nombres de las imagenes al guardarla (Ayuda)

jejejeje muy bien pensado eh!! jjejeje, no lo voy a liar mas porque me pierdo aunque creo que es dificil que yo suba dos archivos al mismo tiempo ya que solo doy posibilidad de subirlo de uno en uno ..... pero vamos ya los problemas que me he quitado de encima son muchos porque date cuenta que subo imagenes de la misma persona en la galeria y casi siempre se suele grabar todas con el nombre casi igual y se te rebuja una con otra y al final la subes con los mismos nombres :P jejej
  #19 (permalink)  
Antiguo 01/06/2009, 13:38
 
Fecha de Ingreso: septiembre-2008
Mensajes: 242
Antigüedad: 15 años, 7 meses
Puntos: 3
Respuesta: Problema con los nombres de las imagenes al guardarla (Ayuda)

haz lo siguente:


//obtenemos el nombre del archivo
$name = $_FILES['fichero']['name'];

//obtenemos la extencion del archivo (se hace este metodo por si el archivo contiene el caracter ".")
$extencion = str_replace(strrev(strstr(strrev($cadena), ".")), "", $cadena);

//obtenemos el nombre del archivo sin extencion
$REALnombre = str_replace(".$extencion", "", $name);

//esto es para tener un maximo de 1 millon de copias
$potencia = pow(10,6);

for($i=0; $i<$potencia; $i++)
{

//revizamos si existe el nombre si existe le agregara un numero ejemplo:
hola.jpg -> hola0.jpg -> hola1.jpg ->hola2.jpg->etc..
if($i == 0)
{
$nombre = $name;
}
else
{
$nombre = "$REALnombre"
$nombre .= "$i";
$nombre .= ".$extencion";
}


if(!file_existis($nombre))
{
//obtenemos el nombre final
$nombreFinal = $nombre;
//Y... terminamos nuestro lindo bucle ^^
break;
}
else
{
//reiniciamos la variable $nombre
unset($nombre);
}

}

ahora es cosa de que hagas

$destino = "tucarpeta/$nombreFinal";
move_uploaded_file($rutatemp,$destino);

listo ^^
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 02:40.