Ver Mensaje Individual
  #2 (permalink)  
Antiguo 24/01/2006, 09:17
Avatar de emiliodeg
emiliodeg
 
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 18 años, 8 meses
Puntos: 55
esto se arregla haciendo thumbnails con este codigo

Código PHP:
function thumbnail($img_origen$nueva_anchura$carpeta$img_destino){ 
    
$extension explode(".",$img_origen); 
    
$ext count($extension)-1
        if(
$extension[$ext] == "jpg" || $extension[$ext] == "jpeg"
        { 
            
$image ImageCreateFromJPEG($img_origen); 
            
$tipo=1;
        } 
        else if(
$extension[$ext] == "gif"){ 
            
$image ImageCreateFromGIF($img_origen); 
            
$tipo=2;
        } 
        else if(
$extension[$ext] == "png"){ 
            
$image ImageCreateFromPNG($img_origen); 
            
$tipo=3;
        } 
        else 
        { 
            return 
FALSE;
        } 
    
$width  imagesx($image);
    
$height imagesy($image); 
    
$nueva_altura ceil($nueva_anchura $height) / $width ;
        if (
function_exists("imagecreatetruecolor")) 
        { 
           
$thumb ImageCreateTrueColor($nueva_anchura$nueva_altura);
        } 
        if (!
$thumb$thumb ImageCreate($nueva_anchura$nueva_altura); 
    
ImageCopyResized($thumb$image0000$nueva_anchura$nueva_altura$width$height); 
    switch(
$tipo){
        case 
1:
            
header("Content-type: image/jpeg"); 
            
ImageJPEG($thumb$carpeta.$img_destino75); 
        break;
        case 
2:
            
header("Content-type: image/gif"); 
            
imagegif($thumb,$carpeta.$img_destino);
        break;
        case 
3:
            
header("Content-type: image/png"); 
            
imagepng($thumb,$carpeta.$img_destino);
        break;
    }
return 
TRUE
}
//thumbnail 
entonces haces lo siguiente, con el archivo subido
Código PHP:
$nom=$_POST['nombredelaimagen'];
$__carpeta_imgs="../carpetaparaimagenes/";
$__tamanio_thumb=150//ancho del thumbnail
if(!es_imagen($nom))//comprobamos q sea una imagen con formato permidito
{
header("Location: error.php");
exit;
}
if(
file_exists($__carpeta_imgs.$nom))//no podemos subir el archivo si exite uno con el mismo nombre
{
header("Location: error.php");
exit;
}

if(
move_uploaded_file($_FILES['nombredelaimagen']['tmp_name'],$__carpeta_imgs.$nom)){
$img_a=$__carpeta_imgs.$nom;//img original
$img_n=$__carpeta_imgs."_t_".$nom;//img thumbnail
$imagen=getimagesize($img_a);
if(
$imagen[0]>$__tamanio_thumb)//ver si la imagen es mas ancha q lo deseado
thumbnail($img_a,$__tamanio_thumb,"",$img_n);
else
copy($img_a,$img_n);//la copiamos para no tener problemas adelante por flata de archivos
$res=mysql_query("INSERT INTO imagenes (id, nombre) VALUES ('','$nom')")or die("error guradando archivo.<br>".mysql_error());//guardamos el nombre de la imagen
$idarch=mysql_insert_id();//obtenemos el ID de la imagen para ponerlo en el nombre y complicar la repeticion de nombre de archivos
if(file_exists($img_a)){
chmod($img_a,0755);
rename($img_a,$__carpeta_imgs.$idarch."_".$nom);
}
if(
file_exists($img_n)){
chmod($img_n,0755);
rename($img_n,$__carpeta_imgs.$idarch."_t_".$nom);
}
}
//move_uploaded_file
else{
echo (
"Imposible subir el archivo \\\"".$_FILES['archivo']['name']."\\\"");

aca tenes una funcion para ver si el archivo subido es una imagen
Código PHP:
function es_imagen($img){
    
$extension explode(".",$img); 
    
$ext count($extension)-1
        if(
$extension[$ext] == "jpg" || $extension[$ext] == "jpeg" || $extension[$ext] == "gif" || $extension[$ext] == "png"
            return 
TRUE;
        else
            return 
FALSE;       

con todo esto no deberias volver a preocuparte por las miniaturas
espero te sirva
saludos

Última edición por emiliodeg; 24/01/2006 a las 09:36