Foros del Web » Programando para Internet » PHP »

carga de imagenes desde una BD.

Estas en el tema de carga de imagenes desde una BD. en el foro de PHP en Foros del Web. Hola todos saludos cordiales... Revisando el foro me encontré con un código para insertar y recuperar imágenes desde una BD, la cual la modifique a ...
  #1 (permalink)  
Antiguo 11/08/2008, 23:29
Avatar de Gious  
Fecha de Ingreso: septiembre-2006
Mensajes: 122
Antigüedad: 18 años, 2 meses
Puntos: 0
carga de imagenes desde una BD.

Hola todos saludos cordiales...

Revisando el foro me encontré con un código para insertar y recuperar imágenes desde una BD, la cual la modifique a mis necesidades. El problema que tengo es que al recuperar las imágenes (mostrarlas en el navegador) no se pueden ver, tengo que insertar las imagenes desde phpmyadmin 2.9.0.3 para poder mostrarlas en el navegador cual es mi error por lo que no se muestra las imágenes mi codigo es es el siguiente:
codigo donde llama a la imagen
Código PHP:
echo "<br><img src=\"ver_thumbnail2.php?id=".$registro["id_foto"]."\">"
código que sirve para mostrar la imagen
ver_thumnails2.php
Código PHP:
// OJO, sólo funciona con imagnes en formato JPEG ...
if(isset($_GET['id'])) {
    
    
$conexion=mysql_connect("localhost","root","BETTY0819") or die ("no se ha podido conectar a la BD");
    
mysql_select_db("cobay") or die ("no se ha podido seleccionar la BD");
    
//$sql = "SELECT archivo_binario,archivo_tipo,archivo_nombre FROM archivos WHERE id='".$_GET['id']."'";
    //$sql = "SELECT * FROM fotos WHERE id_noti=".$_GET['id']."";
    
$sql "SELECT * FROM fotos WHERE id_foto=".$_GET['id']."";
    
$consulta mysql_query($sql,$conexion);
    
$imagen mysql_result($consulta,0,"foto");

    
// Envio cabeceras al navegador .. se indica que lo "que vá" es una imagen de formato MIME JPEG
   
header ("Content-type: image/jpeg");

    
// Generar el thumbnail:

    // Se crea la imagen desde el campo binario de la BD
    
$img imagecreatefromstring($imagen);

    
// Tamaño del Thumbanil (de la imagen a generar ..)
    
$picsize 123;
    
    
// Se obtienen los datos del ancho y alto de la imagen.
    
$new_w imagesx($img);
    
$new_h imagesy($img);

    
// Se calcula la relación alto/ancho
    
$aspect_ratio $new_h $new_w;
    
    
// Se ajusta al nuevo tamaño
    
$new_w $picsize;
    
$new_h abs($new_w $aspect_ratio);

    
// Se crea la mascara de la imagen nueva
    
$dst_img imagecreate($new_w,$new_h);

    
// Se copia y reajusta el nuevo tamaño en la nueva imagen.
    
imagecopyresized($dst_img,$img,0,0,0,0,$new_w,$new_h,imagesx($img),imagesy($img));

     
// Se crea la mascara de la imagen nueva
    
$dst_img imagecreatetruecolor($new_w,$new_h);

// Se copia y reajusta el nuevo tamaño en la nueva imagen.
     
imagecopyresampled($dst_img,$img,0,0,0,0,$new_w,$new_h,imagesx($img),imagesy($img)); 
    
// Se entrega al buffer de salida (navegador en este caso) la imagen en formato JPEG
    // El tercer parámetro (100) indica la calidad de la imagen: en porcentaje relación calidad/peso imagen.
    
imagejpeg($dst_img,'',100);

__________________
El futuro es hoy Aprende Linux. Guadalinex,
  #2 (permalink)  
Antiguo 12/08/2008, 02:41
 
Fecha de Ingreso: diciembre-2007
Ubicación: Barcelona
Mensajes: 289
Antigüedad: 16 años, 11 meses
Puntos: 8
Respuesta: carga de imagenes desde una BD.

Hola,

A lo mejor digo tonterias, pero por que no le pasas la URL o la ruta al src de la imagen directamente? Creo que te ahorrarias muchos dolores de cabeza...

Si lo que he dicho es una locura quizás es que no he entendido muy bien cual es la finalidad de tu php...
  #3 (permalink)  
Antiguo 12/08/2008, 02:50
Avatar de Gious  
Fecha de Ingreso: septiembre-2006
Mensajes: 122
Antigüedad: 18 años, 2 meses
Puntos: 0
Respuesta: carga de imagenes desde una BD.

si pero mi problema es que tengo que redimensionar las imágenes que obtengo de la BD
__________________
El futuro es hoy Aprende Linux. Guadalinex,
  #4 (permalink)  
Antiguo 12/08/2008, 02:57
Avatar de chiquirf  
Fecha de Ingreso: noviembre-2005
Ubicación: Madrid
Mensajes: 215
Antigüedad: 19 años
Puntos: 3
Respuesta: carga de imagenes desde una BD.

Has probado esto:
Código PHP:
echo "<br><a href=\"ver_thumbnail2.php?id=".$registro["id_foto"]."\">"
no vaya ha ser que ese código lo que haga es mostrarte la img a través de una URL, no usarla como src de una img...

Creo que también para generar imagenes en php debe estar habilitado el GD, pero ese es un tema que se lo dejo a los expertos, porque yo nunca lo he necesitado.

Suerte...
  #5 (permalink)  
Antiguo 12/08/2008, 08:18
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: carga de imagenes desde una BD.

Hola Gious,

Si revisas en el foro Cluster dejo un tutorial sobre como descargar las fotos desde la BD en formato binario.

Saludos.
  #6 (permalink)  
Antiguo 12/08/2008, 08:44
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 19 años, 6 meses
Puntos: 32
Respuesta: carga de imagenes desde una BD.

Cita:
Iniciado por Gious Ver Mensaje
Hola todos saludos cordiales...

Revisando el foro me encontré con un código para insertar y recuperar imágenes desde una BD, la cual la modifique a mis necesidades.
Sugerencia: por qué en vez de meterte con código que muy probablemente no entiendas o haga más de lo que necesites, no haces una implementación más simple y habitual?

Vi en otra consulta que ya habías logrado subir las imágenes al servidor, por consiguiente solo deberías guardar el nombre del archivo en un campo de la base de datos y posteriormente tener en algún archivo de configuración la ruta donde estarán ubicadas las imágenes.

En el 90% de los casos no se estila persistir contenidos binarios (como las imágenes) dentro de la misma base de datos, a menos que esto te provea alguna funcionalidad que puedas necesitar.

De lo contrario, ve previendo el tema de cómo respaldar tu base y el crecimiento exponencial que tendrá y como será tu proceso de recuperación de datos en caso de fallas.
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
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 13:01.