Foros del Web » Programando para Internet » PHP »

Problemas para manejar imagenes en BD

Estas en el tema de Problemas para manejar imagenes en BD en el foro de PHP en Foros del Web. hola, muchas gracias de antemano, tengo la siguiente inquetud, tengo una base de datos en mySql y una tabla orden q aparte de los campos ...
  #1 (permalink)  
Antiguo 29/01/2008, 15:20
 
Fecha de Ingreso: enero-2008
Mensajes: 13
Antigüedad: 16 años, 2 meses
Puntos: 0
Problemas para manejar imagenes en BD

hola, muchas gracias de antemano, tengo la siguiente inquetud, tengo una base de datos en mySql y una tabla orden q aparte de los campos NumOrden, Fecha, Comentario, debe soportar entre 2 y 3 imagenes por regstro, me preocupa que con tantas fotos se vaya a generar algun error, no se como manejarlo, si ingresar las imagenes a la BD o hacer como un vinculo a una carpeta en el momento de generar una orden ??? esto ultimo no se como hacerlo si alguin conoce de algun tutorial o laguna manera les agradeceria
  #2 (permalink)  
Antiguo 29/01/2008, 22:15
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 7 meses
Puntos: 70
De acuerdo Re: Problemas para manejar imagenes en BD

Hola marichica, cómo vas??

Las dos formas que dices se pueden hacer, pero comúnmente lo que se hace es guardar el nombre de la imagen en la DB, guardar la imagen como tal, osea el archivo, implica mas recursos para manejarla y mas peso para la DB.

Para la opción de crear un vínculo, es sencillo, guardas el nombre de la imagen en la DB. Has subido archivos al server por medio de php?? Sí lo haz hecho sabrás de la existencia de $_FILES..., sino busca info sobre esa intrucción.

Te dejo un link de todas formas: http://www.programacionweb.net/artic...ticulo/?num=33

Cualquier cosa...

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #3 (permalink)  
Antiguo 30/01/2008, 04:57
Avatar de jorjo  
Fecha de Ingreso: abril-2007
Ubicación: España
Mensajes: 90
Antigüedad: 16 años, 11 meses
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
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 04:40.