¿Cómo mostrar una imagen guardada en phpmyadmin con formato BLOB pero con sesiones?

publicado por: Anonymous

Quiero mostrar con HTML y PHP una imagen guardada en una base de datos MySQL, en una página web.

Inicialmente capturé los datos desde la base de datos MySQL de phpmyadmin de una imagen con un get:

<?php if(isset($_GET['pro'])): ?>

Donde en la misma página con este código:

<img class="img-center img-responsive" src="data:image/jpg;base64,<?php echo "".$_SESSION[base64_encode($result[0]['prodImg']); ?>" alt="">`

La imagen se muestra correctamente, el problema viene cuando quiero que eso se guarde en una sesión para seguir pasando esa imagen a otras páginas donde va a seguir un proceso, ya sin tener que jalarla directamente de la base de datos.

Puse esto en la primera página:

<?php
$imagen = $result[0]['prodImg'];
$_SESSION['variable9']=$imagen;

Luego en la siguiente página donde todos los demás datos complementarios de la imagen me cargan correctamente con la sesión, lo que no me carga ya es la imagen.

Éste es el código con el que quiero mostrar la imagen en la siguiente página:

<img style="max-height: 200px" src="data:image/jpg;base64,<?php echo "".$_SESSION[base64_encode('variable9')]; ?>" alt="">`

Lo he puesto de muchas formas y ninguno me funciona.

Nota: Con este mismo proceso otros datos sí me cargan. Por ejemplo:

Primera página:

<?php 
if(!isset($_SESSION))
{
session_start();
}  
?>
<?php if(isset($_SESSION['id'])): ?>
<?php if(isset($_GET['pro'])): ?>
<?php 
$class= new cProducto();
$idUsuario=$_SESSION['id'];
$result2 = $class->getUsuarioForId($idUsuario);
$result = $class->getProductForId($_GET['pro']);

$name = strtoupper($result[0]['prodNombre']);
$idProducto= $result[0]['idProducto'];
$ancho = $result[0]['prodAncho'];
$alto = $result[0]['prodAlto'];
$categoria = $result[0]['idCategoria'];
$imagen = $result[0]['prodImg'];

$nomPer = $result2[0]['nombrersocial'];
$numero = $result2[0]['numero'];
$dni = $result2[0]['dniruc'];
$_SESSION['variable1']=$idProducto;
$_SESSION['variable2']=$name;
$_SESSION['variable3']=$ancho;
$_SESSION['variable4']=$alto;
$_SESSION['variable5']=$categoria;
$_SESSION['variable6']=$nomPer;
$_SESSION['variable7']=$numero;
$_SESSION['variable8']=$dni;
$_SESSION['variable9']=$imagen;
?>

Segunda Página:

<?php session_start();
?>
<pre style="text-align: justify; margin: 10px;"><?php echo "Código              :       ".$_SESSION['variable1']; ?></pre>
<pre style="text-align: justify; margin: 10px;"><?php echo "Nombre del producto :       ".$_SESSION['variable2']; ?></pre>
<pre style="text-align: justify; margin: 10px;"><?php echo "Ancho               :       ".$_SESSION['variable3']; ?></pre>
<pre style="text-align: justify; margin: 10px;"><?php echo "Alto                :       ".$_SESSION['variable4']; ?></pre>

Y así sucesivamente todos los datos se muestran correctamente menos la imagen.

solución

Estas montando un lio tremendo con la codificación y las sesiones.

Recupera la imagen así siempre

$imagen = $result[0]['prodImg'];
$_SESSION['variable9']=$imagen;

Y en todos los sitios donde la tengas que usar haz

base64_encode($_SESSION['variable9'])

En tu caso

<img style="max-height: 200px" src="data:image/jpg;base64,<?php echo "".base64_encode($_SESSION['variable9']); ?>" alt="">
Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *