Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/11/2005, 19:11
franz_fqm
 
Fecha de Ingreso: julio-2005
Mensajes: 36
Antigüedad: 18 años, 9 meses
Puntos: 0
por que no se visualiza la imagen

Hola amigos del foro; soy nuevo pero espero que me ayuden, el problema es el siguiente:

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>";
    } 

Última edición por Cluster; 16/11/2005 a las 07:03