Cuando subo una imagen con un nombre que ya esta registrada en la base de datos y por ende ya guardada en un carpeta la renombro con la fecha(dd-mm-aaaa) y la hora(h-m-s) en que ha sido subida ejemplo:
Frontal.jpg
la renombro a:
Frontal(24-11-2005&17-16-43).jpg
la imagen se guarda con ese nombre pero cuando uso un thumnails para visualizarlas mas pequeñas la imagen previa o enpequeñecida no aparece para las renombradas. alguna sugerencia del porque:
les pongo el codigo con que las renombro y guardo:
Código PHP:
//funcion para redimensionar la imagen($img_original) y guardarla a un directorio($dir) con un ancho,alto,calidad
function redimensionar($img_original,$dir,$ancho, $alto, $calidad) {
if (!file_exists($img_original)){echo "no existe el archivo";return false;}
$datos=getimagesize($img_original);
if ($datos[2]==2)
{
// crear imagen desde original
$img = imagecreatefromjpeg($img_original);
// crear imagen nueva
$thumb = imagecreatetruecolor($ancho,$alto);
// redimensionar imagen original copiandola en la imagen
imagecopyresized($thumb,$img,0,0,0,0,$ancho,$alto,ImageSX($img),ImageSY($img));
// guardar la imagen redimensionada donde indicia $img_nueva
imagejpeg($thumb,$dir,$calidad);
imagedestroy($thumb);
imagedestroy($img);
}
else if ($datos[2]==3)
{
// crear imagen desde original
$img = imagecreatefrompng($img_original);
// crear imagen nueva
$thumb = imagecreatetruecolor($ancho,$alto);
// redimensionar imagen original copiandola en la imagen
imagecopyresized($thumb,$img,0,0,0,0,$ancho,$alto,ImageSX($img),ImageSY($img));
// guardar la imagen redimensionada donde indica $dir con la calidad $calidad
imagepng($thumb,$dir,$calidad);
imagedestroy($thumb);
imagedestroy($img);
}
else{return false;}
return true;
}
if(is_uploaded_file($_FILES['fondo']['tmp_name']))
{ // verifica haya sido cargado el archivo
if (($_FILES['fondo']['type']=="image/jpeg")or($_FILES['fondo']['type']=="image/pjpeg")or($_FILES['fondo']['type']=="image/png"))
{
$dir="../Imagen/menu/fondo/";//carpeta donde debe guardarse la imagen final
$dir_temp="../Imagen/menu/";//carpeta donde se guarda temporalmente la imagen para ser reducida
$nombre=$_FILES['fondo']['name'];
$ext=substr(strrchr($nombre,"."),0);//se extrae la extension
$sinext=substr($nombre,0,strlen($nombre)-strlen($ext));//se extrae el nombre sin extension
$consulta=pg_exec("select nom_img from imagenes where ((nom_img='$nombre')and(dir_img='$dir'))");//ojo la consulta mas abajo se hace sobre una conexion a la base de datos
$dato=pg_fetch_object($consulta);
$dat=$dato->nom_img;
if ($dat!="")
{//si la variable $dat es distinto de vacio significa que existe ese nombre y esa imagen(adiero la fecha y hora al nombre)
$nombre=$sinext."(".date(d)."-".date(m)."-".date(Y)."&".date(G)."-".date(i)."-".date(s).")".$ext;
$mensaje="(ya existia con ese nombre y fue renombrado a:) ";
}
else//la variable es vacia es decir no hay nombre y se mantien el nombre
{
$nombre=$sinext.$ext;
}
if(move_uploaded_file($_FILES['fondo']['tmp_name'],$dir_temp.$_FILES['fondo']['name']))
{ // se coloca en su lugar final
if (redimensionar($dir_temp.$_FILES['fondo']['name'],$dir.$nombre,768,1024,75))
{
recuperar_ide_imagenes();
$res=pg_exec("insert into imagenes(ide_img,nom_img,dir_img)values($ide_imagenes,'$nombre','$dir')");
echo"el archivo para el fondo ".$mensaje.$nombre." ha sido subido correctamente.<br>";
}
else
{
echo"el archivo ".$_FILES['fondo']['name']." tiene una estructura diferente a los formatos admitidos, puede
ser que la extension no pertenesca al tipo de archivo que se intenta subir: no se guardo el archivo para el fondo.<br>";
}
unlink($dir_temp.$_FILES['fondo']['name']); //se borra el archivo que se ha subido temporalmente de ese directorio
}
else
{
echo"el archivo para el fondo : ".$_FILES['fondo']['name']." no se pudo subir al servidor, intentelo mas tarde<br>";
}
}
else
{
echo"el archivo de fondo: ".$_FILES['fondo']['name']." no es un archivo de tipo imagen su extension es: ".$_FILES['fondo']['type']."<br> Tipos de extension aceptados: JPEG, PJPEG, PNG.<br>";
}
}
else
{
echo"el archivo de fondo no pudo ser cargado<br>";
}