Re: Ayuda con Imagen en Campo Bytea y PHP

From: Sebastián Alexis Salazar Molina <sebastian(at)linuxchile(dot)cl>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Ayuda con Imagen en Campo Bytea y PHP
Date: 2007-01-06 17:53:12
Message-ID: 200701061453.12174.sebastian@linuxchile.cl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Para poder trabajar con bytea en PHP, debes primero "escaparla", por ejemplo:

$arc = $_FILES["archivo"]["tmp_name"];
$size = $_FILES["archivo"]["size"];
$tipo = $_FILES["archivo"]["type"];
$nombre = basename($_FILES["archivo"]["name"]);

if (exif_imagetype($arc) != IMAGETYPE_JPEG) {
echo("Debe tener una imagen JPG para poder asociarla al profesor");
exit();
}

$fp = fopen($arc, "rb");
$contenido = fread($fp,$size);
fclose($fp);

$contenido = pg_escape_bytea($contenido);
$query = "INSERT INTO tabla VALUES(NEXTVAL('tabla_tabla_id_seq'),
$nombre','$tipo','$size','$contenido')";
y ahí la metes en tu tabla con la función que más te parezca.

Para mostrarla en una imagen, yo hago lo siguiente.
Genero un script llamado "imagen.php" y dentro de él coloco una función:
$sec = $_GET['sec'];
switch($sec) {
case "foto":
$vid = (int) $_GET['vid'];
foto($vid);
break;
}

function foto($vid) {
$conexion = dbconnect();
$sql = dbquery($conexion,"SELECT img FROM tabla WHERE
foto_id='$vid'");
header("Content-Type: image/jpeg");
$imagen = pg_unescape_bytea(pg_fetch_result($sql,'0',"img"));
echo("$imagen");
pg_free_result($sql);
pg_close($conexion);
}

Y donde quiero mostrar la imagen, uso, la etiqueta img de html:
<img src="imagen.php?sec=foto&vid=<?php //algun indice de fila (número) ?>"
alt="bla" />

El Sábado, 6 de Enero de 2007 12:55, Victor H. Pinto del Carpio escribió:
> Hola Amigos, tengo un problema y no se si me podrian
> ayudar con la solucion.
>
> Tengo una tabla con un campo bytea, en este campo
> inserte mediante una aplicación de escritorio una
> imagen, lo que no puedo hacer es extraer esa imgen
> hacia un web mediante php, los ejemplos que encontre
> trabajan con campos oid, es lo mismo que bytea el
> oid?, por que no me funcionan
>
> Si alguien podria ayudarme por favor.
>
>
>
> Saludos
>
> VICTOR H. PINTO DEL CARPIO
> JEFE DE DESARROLLO

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Jaime Casanova 2007-01-06 19:56:05 Re: sobre vacuum
Previous Message Jessie Cordoba 2007-01-06 17:19:11 desconectar usuarios