Ver Mensaje Individual
  #3 (permalink)  
Antiguo 30/01/2008, 04:57
Avatar de jorjo
jorjo
 
Fecha de Ingreso: abril-2007
Ubicación: España
Mensajes: 90
Antigüedad: 17 años
Puntos: 1
Re: Problemas para manejar imagenes en BD

Hola, nose si te servirá, pero cuando guardo una noticia, yo uso este script que redimensiona la imagen dentro de unas medidas que le pueden modificar y también crea un thumb. Después sube los archivos a un directorio del dominio y guarda las rutas en la BD:

Código PHP:
    //Subimos la imagen...
    
if (($HayErrorFoto == false) && ($_FILES['userfile']['name'] != '')){
        if (!(
strpos($_FILES['userfile']['type'], "gif") || strpos($_FILES['userfile']['type'], "jpeg") || strpos($_FILES['userfile']['type'], "png"))) {
            
$errorImagen "Sólo se permiten archivos .gif, .jpg o .png";
            
$HayErrorFoto true;
        }elseif(
$_FILES['userfile']['size'] > 4096000){
            
$errorImagen "Tamaño máximo 4Mb.";
            
$HayErrorFoto true;
        }else{
            
$archivoimagen $act->AhoraTexto()."_".$_FILES['userfile']['name'];
            if (!(
move_uploaded_file($_FILES['userfile']['tmp_name'], $directorio.$archivoimagen))){
                
$errorImagen "No se pudo subir la foto";
                
$HayErrorFoto true;
            }else{
                
//Según el tipo...
                
if (strpos($_FILES['userfile']['type'], "gif")){
                    
$fuente = @imagecreatefromgif($directorio.$archivoimagen);
                }elseif (
strpos($_FILES['userfile']['type'], "jpeg")){
                    
$fuente = @imagecreatefromjpeg($directorio.$archivoimagen);
                }elseif (
strpos($_FILES['userfile']['type'], "png")){
                    
$fuente = @imagecreatefrompng($directorio.$archivoimagen);
                }
                                
                if(
$fuente){
                    
$xx imagesx($fuente);
                    
$yy imagesy($fuente);
                    
                    if(
$xx >= $yy){
                        if(
$xx 600){ $x1 600$y1 600*$yy/$xx; }
                        else{ 
$x1 $xx$y1 $yy;    }
                        if(
$xx 110){ $x2 110$y2 110*$yy/$xx; }
                        else{ 
$x2 $xx$y2 $yy; }
                    }elseif(
$xx $yy){
                        if(
$yy 600){ $x1 600*$xx/$yy$y1 600; }
                        else{ 
$x1 $xx$y1 $yy; }
                        if(
$yy 110){ $x2 110*$xx/$yy$y2 110; }
                        else{ 
$x2 $xx$y2 $yy; }
                    }
                    
$imagen imagecreatetruecolor($x1,$y1);
                    
imagecopyresized($imagen,$fuente,0,0,0,0,$x1,$y1,$xx,$yy);
                    
//Según el tipo...
                    
if (strpos($_FILES['userfile']['type'], "gif")){
                        
imagegif($imagen,$directorio.$archivoimagen);
                    }elseif (
strpos($_FILES['userfile']['type'], "jpeg")){
                        
imagejpeg($imagen,$directorio.$archivoimagen,100);
                    }elseif (
strpos($_FILES['userfile']['type'], "png")){
                        
imagepng($imagen,$directorio.$archivoimagen);
                    }
                    
                    
//Hacemos el Thumb...
                    
$imagen imagecreatetruecolor($x2,$y2);
                    
imagecopyresized($imagen,$fuente,0,0,0,0,$x2,$y2,$xx,$yy);
                    
//Según el tipo...
                    
if (strpos($_FILES['userfile']['type'], "gif")){
                        
imagegif($imagen,$directorio."mini_".$archivoimagen);
                    }elseif (
strpos($_FILES['userfile']['type'], "jpeg")){
                        
imagejpeg($imagen,$directorio."mini_".$archivoimagen);
                    }elseif (
strpos($_FILES['userfile']['type'], "png")){
                        
imagepng($imagen,$directorio."mini_".$archivoimagen);
                    }
                }else{
                    
$errorImagen "No se ha podido redimensionar la imagen.";
                    
$HayErrorFoto true;
                }
                if(
$HayErrorFoto == false){
                    
$act->CodigoAlbum $_REQUEST["Codigo"];
                    
$act->Foto "http://www.forosdelweb.com/images/noticias/".$archivoimagen;
                    
$act->FotoMini "http://www.forosdelweb.com/images/noticias/mini_".$archivoimagen;
                    
$GuardadoFoto true;
                }
            }
        }
    } 
Espero haberte ayudado

Saludos