[Php-avanzado] Cargar imagen BLOB
Leonardo Tadei - Pegasus Tech Supply
leonardot en pegasusnet.com.ar
Sab Oct 27 21:19:51 ART 2012
Hola Jésica,
en la segunda parte del apunte de PHP Inicial hay un ejemplo. No sé si
tenés ese apunte.
En este enlace tenés todo el proceso:
http://anyexample.com/programming/php/php_mysql_example__image_gallery_%
28blob_storage%29.xml
La parte de visualización está después del
elseif (isset($_GET['show']))
Fijate que la parte de mostrar la imagen no tiene ninguna salida: la
idea es que este script, en tu caso recibiendo por GET el id de la
imagen a mostrar, sea llamado en el src de una tag <img>
<img src="img.php?id=32" alt="imagen del BLOB" />
Salu2!
El sáb, 27-10-2012 a las 20:42 +0000, Jesica Billia escribió:
> Hola!! Gracias x la respuesta!! No me podrás pasar por ejemplo cómo armar la cabecera porque solamente quiero usar blob!! Y otra aclaración, lo estoy usando como para cargar imágenes tipo lista. Saludos!!
>
> -----Original Message-----
>
> From: Leonardo Tadei - Pegasus Tech Supply
> Sent: 26 Oct 2012 13:00:16 GMT
> To: Lista del curso de PHP Avanzado
> Subject: Re: [Php-avanzado] Cargar imagen BLOB
>
> Hola Jésica,
>
> para generar la imagen almacenada, tal y como hacés tener que emitir
> los header() adecuados al tipo mime del archivo, pero header no funciona
> si el script ya tiene salida, y tu código de img.php tiene tags que
> harán que ya no puedas modificar la cabecera.
>
> También tenés que decidirte cómo manejar la imagen:
> a) si está en un BLOB hay que reconstruirla desde el campo de la tabla.
> b) si usás imagemagik tenés que tener el archivo ya guardado en el disco
> (y entonces no tiene sentido el BLOB)
> c) si usás la bilbioteca GD de PHP, entonces tenés que tener el archivo
> en el disco y no tiene sentido usar imagemagik.
>
> Estás mezclando 3 maneras de manejar una imagen!
>
>
>
> El mié, 24-10-2012 a las 20:47 +0000, Jesica Billia escribió:
> >
> > Buenas a todos!!!
> > Consulta, tengo que cargar una imagen blob, la cargo pero no la puedo
> > visualizar.... está en formato BLOB
> > pego el código para ver si alguien me puede ayudar!!
> > Hay dos archivos, uno es img.php donde tengo la imagen blob y en
> > catalogo2.php es el que debería mostrar la imagen.....
> > Gracias!!!
> >
> >
> >
> >
> >
> >
> > img.php
> > ---------
> > <HTML>
> > <HEAD>
> > <TITLE>New Document</TITLE>
> > </HEAD>
> >
> >
> > <?php
> > if(isset($_GET['id']))
> > {
> >
> >
> > include 'config.php';
> > $connection=mysql_connect("$bdservidor","$bdunombre","$bdpass") or
> > die("Error conectando a la base de datos");
> >
> >
> >
> >
> >
> >
> > $db=mysql_select_db("$bdnombre",$connection) or die ("Error
> > seleccionando la base de datos");
> >
> >
> > $id = $_GET['id'];
> >
> >
> >
> > $query = "SELECT name, type, size, content FROM upload WHERE id
> > = '$id'";
> > $result = mysql_query($query) or die('Error, query failed');
> >
> >
> > list($name, $type, $size, $foto) = mysql_fetch_array($result);
> > echo 'lista imagen<br/>';echo $name;
> >
> >
> > $ruta= "images/accesorios/".$name ;
> > $im = imagecreatetruecolor(120, 20);
> >
> >
> >
> > // $image = new Imagick();
> > // $image->setResolution(300, 300);
> > // $image->readImageBlob($content);
> >
> > // convert the output to JPEG
> > // $image->setImageFormat('jpeg');
> > // $image->setImageCompressionQuality(60)
> >
> >
> > //header("Content-Disposition: attachment; filename=$name");
> > header("Content-length: $size");
> > header("Content-type: $type");
> >
> >
> >
> >
> > print $foto; //imagen blob
> > exit;
> > }
> > ?>
> >
> >
> >
> >
> > <BODY>
> >
> >
> > </BODY>
> > </HTML>
> >
> >
> > catalogo2.php
> >
> >
> > <?php require_once('Connections/con_imag.php'); ?>
> > <?php
> > if (!function_exists("GetSQLValueString")) {
> > function GetSQLValueString($theValue, $theType, $theDefinedValue = "",
> > $theNotDefinedValue = "")
> > {
> > if (PHP_VERSION < 6) {
> > $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) :
> > $theValue;
> > }
> >
> >
> > $theValue = function_exists("mysql_real_escape_string") ?
> > mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
> >
> >
> > switch ($theType) {
> > case "text":
> > $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
> > break;
> > case "long":
> > case "int":
> > $theValue = ($theValue != "") ? intval($theValue) : "NULL";
> > break;
> > case "double":
> > $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
> > break;
> > case "date":
> > $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
> > break;
> > case "defined":
> > $theValue = ($theValue != "") ? $theDefinedValue :
> > $theNotDefinedValue;
> > break;
> > }
> > return $theValue;
> > }
> > }
> >
> >
> > $maxRows_catalogo_imag = 10; //maxima paginas
> > $pageNum_catalogo_imag = 0;
> > if (isset($_GET['pageNum_catalogo_imag']))
> > {
> > $pageNum_catalogo_imag = $_GET['pageNum_catalogo_imag'];
> > }
> > $startRow_catalogo_imag = $pageNum_catalogo_imag *
> > $maxRows_catalogo_imag;
> >
> >
> > mysql_select_db($database_con_imag, $con_imag);
> > $query_catalogo_imag = "SELECT * FROM linkimagen";
> > $query_limit_catalogo_imag = sprintf("%s LIMIT %d, %d",
> > $query_catalogo_imag, $startRow_catalogo_imag,
> > $maxRows_catalogo_imag);
> >
> > $catalogo_imag = mysql_query($query_limit_catalogo_imag, $con_imag)
> > or die(mysql_error());
> > $row_catalogo_imag = mysql_fetch_assoc($catalogo_imag);
> >
> >
> > if (isset($_GET['totalRows_catalogo_imag'])) {
> > $totalRows_catalogo_imag = $_GET['totalRows_catalogo_imag'];
> > } else {
> > $all_catalogo_imag = mysql_query($query_catalogo_imag);
> > $totalRows_catalogo_imag = mysql_num_rows($all_catalogo_imag);
> > }
> > $totalPages_catalogo_imag =
> > ceil($totalRows_catalogo_imag/$maxRows_catalogo_imag)-1;
> > ?>
> > <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
> > "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
> > <html xmlns="http://www.w3.org/1999/xhtml">
> > <head>
> > <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
> > <title>Documento sin título</title>
> > </head>
> >
> >
> > <body>
> > <table border="1">
> > <tr>
> > <td>Referencia</td>
> > <td>Imagen</td>
> > <td>Tipo</td>
> > <td>Precio</td>
> > <td>Nombre</td>
> > <td>Descripcion</td>
> > </tr>
> > <?php do
> >
> >
> > {
> > $flsize = $row_catalogo_imag['tama�o'];
> > $fltype = $row_catalogo_imag['tpimagen'];
> > $name = $row_catalogo_imag['Nombre'];
> > $foto = $row_catalogo_imag['imagenblob'];
> >
> >
> > ?>
> > <tr>
> > <td> <?php echo
> > $row_catalogo_imag['Referencia']; ?></td>
> > <?//el id es fijo solo para prueba ?>
> > <td> <IMG src="img.php? id=3"></td>
> > <td> <?php echo $row_catalogo_imag['Tipo']; ?></td>
> > <td><?php echo $row_catalogo_imag['Precio']; ?></td>
> > <td><?php echo $row_catalogo_imag['Nombre']; ?></td>
> > <td><?php echo $row_catalogo_imag['Descripcion']; ?></td>
> > </tr>
> > <?php } while ($row_catalogo_imag =
> > mysql_fetch_assoc($catalogo_imag)); ?>
> > </table>
> > </body>
> > </html>
> > <?php
> > mysql_free_result($catalogo_imag);
> > ?>
> >
> >
> >
> >
> > _______________________________________________
> > Php-avanzado mailing list
> > Php-avanzado en pato2.fi.mdp.edu.ar
> > http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
>
> --
> Leonardo Tadei
> leonardot en pegasusnet.com.ar
> Web: http://leonardo.tadei.com.ar
> Firma pública: http://www.pegasusnet.com.ar/LeonardoTadei-public.key
>
> _______________________________________________
> Php-avanzado mailing list
> Php-avanzado en pato2.fi.mdp.edu.ar
> http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
> _______________________________________________
> Php-avanzado mailing list
> Php-avanzado en pato2.fi.mdp.edu.ar
> http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
--
Leonardo Tadei
leonardot en pegasusnet.com.ar
Web: http://leonardo.tadei.com.ar
Firma pública: http://www.pegasusnet.com.ar/LeonardoTadei-public.key
Más información sobre la lista de distribución Php-avanzado