Ver Mensaje Individual
  #7 (permalink)  
Antiguo 27/09/2012, 14:25
Avatar de Heiroon
Heiroon
 
Fecha de Ingreso: junio-2010
Ubicación: Caracas, Venezuela - Por ahora...
Mensajes: 495
Antigüedad: 13 años, 10 meses
Puntos: 63
Respuesta: Manipular Archivo Bytea con PHP

Vamos a ver si me puedo explicar y me entiendes el contexto en el que estoy...

Estoy trayendo un logo desde BD del siguiente modo

Código PHP:
Ver original
  1. <img class="pointer logo" id="logo" src="<?php print APP_WEB_ROOT."imagen.php?id_emp=".$id_emp;?>" />

imagen.php

Código PHP:
Ver original
  1. // Recupera el id pasado como parametro
  2.     $id=isset($_REQUEST['id_emp'])?$_REQUEST['id_emp']:0;
  3.    
  4.     include_once('includes/path_definitions.php');
  5.     include_once(APP_SRC_ROOT_PATH.'includes/included_in_all.php');
  6.        
  7.     $ConnPG = new pgdb();
  8.     $ConnPG->Connect();
  9.     $size = null;
  10.    
  11.     // Recupera el archivo en base al ID
  12.     $sql_emp = "SELECT  coalesce(logo_emp,'-1') AS logo_emp,
  13.                         CASE WHEN logo_emp IS NULL THEN FALSE
  14.                         ELSE TRUE END AS estado  
  15.                 FROM general.empresas
  16.                 WHERE id_emp=$id";
  17.  
  18.     $ConnPG->Query($sql_emp);
  19.     $row_emp = $ConnPG->Fobject();
  20.     if ($row_emp->estado == 't')
  21.     {
  22.         // Hace el proceso inverso a pg_escape_bytea, para que el archivo est� en su estado original
  23.         $file=pg_unescape_bytea($row_emp->logo_emp);
  24.         $size = getimagesizefromstring (pg_unescape_bytea($row_emp->logo_emp));
  25.     }
  26.     else
  27.     {
  28.         $sql_can = "SELECT  coalesce(log_gra_can,'-1') as log_gra_can,
  29.                             CASE WHEN log_gra_can IS NULL THEN FALSE
  30.                             ELSE TRUE END AS estado  
  31.                     FROM general.canales
  32.                     LEFT JOIN general.empresas USING (id_can)
  33.                     WHERE id_emp=$id";
  34.                    
  35.         $ConnPG->Query($sql_can);
  36.         $row_can = $ConnPG->Fobject();
  37.         // Hace el proceso inverso a pg_escape_bytea, para que el archivo est� en su estado original
  38.         $file=pg_unescape_bytea($row_can->log_gra_can);
  39.         $size = getimagesizefromstring (pg_unescape_bytea($row_can->log_gra_can));
  40.        
  41.     }
  42.     //Asigno lo que deberían de ser las medidas de la imagen, a una variable de sesión.
  43.     $sess->setData("test4", $size);
  44.    
  45.     // Envio de cabeceras
  46.     header("Content-type: image/jpeg");
  47.     header("Pragma: no-cache");
  48.  
  49.     print $file;

listar.php (donde imprimo el valor de la var de sesión).

Código PHP:
Ver original
  1. $test3 = $sess->getData("imgSize");
  2. var_dump($test3);
__________________
Gmail : [email protected]
Twitter: @heiroon

I'm back!