Foros del Web » Programando para Internet » PHP »

me devuele la foto(MEDIUMBLOB) en binario

Estas en el tema de me devuele la foto(MEDIUMBLOB) en binario en el foro de PHP en Foros del Web. $link = mysqli_connect($hostname,$user,$password,$database ); $query = "select nombre_producto,descripcion_producto,foto from producto,foto where id_producto=foto_id_producto and id_producto= $_GET[id_producto] "; $result = mysqli_query($link, $query); /* associative array */ while ...
  #1 (permalink)  
Antiguo 21/12/2009, 06:16
 
Fecha de Ingreso: febrero-2009
Mensajes: 443
Antigüedad: 15 años, 2 meses
Puntos: 1
me devuele la foto(MEDIUMBLOB) en binario

$link = mysqli_connect($hostname,$user,$password,$database );

$query = "select nombre_producto,descripcion_producto,foto from producto,foto where id_producto=foto_id_producto and id_producto= $_GET[id_producto] ";
$result = mysqli_query($link, $query);

/* associative array */
while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)){
echo "<h2>{$row['nombre_producto']}</h2><p>{$row['descripcion_producto']}</p>{$row['foto']}<br>\n";
}

/* free result set */
mysqli_free_result($result);

/* close connection */
mysqli_close($link);



CREATE TABLE IF NOT EXISTS foto (
id_foto SMALLINT(4) UNSIGNED ZEROFILL NOT NULL,
nombre_foto VARCHAR(50) UNIQUE NOT NULL,
foto MEDIUMBLOB NOT NULL,
categoria_foto VARCHAR(50) NOT NULL,
formato_foto VARCHAR(50) NOT NULL,
foto_id_producto SMALLINT (3) UNSIGNED ZEROFILL NOT NULL,
CONSTRAINT pk_id_foto PRIMARY KEY (id_foto),
CONSTRAINT fk_foto_id_producto FOREIGN KEY (foto_id_producto) REFERENCES producte(id_producto)
)ENGINE=InnoDB;

CREATE TABLE IF NOT EXISTS producto (
id_producto SMALLINT (3) UNSIGNED ZEROFILL NOT NULL,
nombre_producto VARCHAR(25) UNIQUE NOT NULL,
descripcion_producto VARCHAR(550) NOT NULL,
producto_id_categoria SMALLINT (2) UNSIGNED ZEROFILL NOT NULL,
CONSTRAINT pk_id_producto PRIMARY KEY (id_producto),
CONSTRAINT fk_producto_id_categoria FOREIGN KEY (producto_id_categoria) REFERENCES categoria(id_categoria)
)ENGINE=InnoDB;
  #2 (permalink)  
Antiguo 21/12/2009, 06:29
Avatar de MarioAraque
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Valencia
Mensajes: 1.398
Antigüedad: 14 años, 6 meses
Puntos: 265
Respuesta: me devuele la foto(MEDIUMBLOB) en binario

Para mostrar un BLOB no tenes que hacer eso, lo que tenes que hacer es mostrar una imagen (<img>) y en el atributo SRC poner la direccion a un archivo PHP que muestre el resultado en formato binario, si no estas generando conflictos: mostrando HTML y Binario en un mismo fichero.

No puedo mostrarte todo lo que hice, pero en resumen seria algo asi:

Código HTML:
<img style="margin-bottom:10px;" src="includes/mostrarimagen.php?id=<?php echo $noticia->getId(); ?>" /> 
y el archivo mostrarimagen.php seria algo asi:

Código PHP:
<?php
    
if(isset($_GET["id"])){
        require_once(
"../includes/conexion.php");
        require_once(
"../clases/imagen/imagen.php");
        
$imagen = new Imagen();
        
$id mysql_real_escape_string($_GET["id"]);

        
$imagen->getImagenPorNoticia($id);
        
header("Content-Type: ".$imagen->getTipo());
        echo 
$imagen->getContenido();
        
mysql_close($conexion);
    }
?>
Osea, repito, no te fijes en lo que programe que no viene al caso, si no que la imagen la mostras como un <img> y el archivo PHP que tenga contenido binario lo tenes que gacer aparte, poner el header correspondiente y solo imprimir el contenido del BLOB (echo $imagen->getContenido() muestra el contenido de la foto, osea todo lo binario).

Ojala te haya servido.

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 05:31.