Bom,
Fiz um teste aqui e com Large Objects(lo), não achei nenhuma forma de
exibir a imagem ou arquivo diretamente , sem precisar criar um
temporário do arquivo.*
Já trabalhando com o campo bytea, é possivel exibir a imagem/arquivo
sem necessidade de precisar criar um arquivo temporário.*
* ISSO EM PHP...
Abaixo segue o script que utilizei no teste:
Para gravar o arquivo no banco :
<?
include("config.php");
$conecta = pg_connect($PG_str);
$image = "/home/sites/ger_agencia/image/alerta_ok.gif";
$byte_foto = file_get_contents($image);
$byte_foto = pg_escape_bytea($byte_foto);
$sql = "INSERT INTO foto(foto_b) VALUES ({$byte_foto}');";
$rs = pg_query($conecta,$sql);
?>
Para Ler o Banco :
<?
include("config.php");
$conecta = pg_connect($PG_str);
$sql = "SELECT foto_b FROM foto ORDER BY id_foto DESC LIMIT 1";
$rs = pg_query($sql);
$rg = pg_fetch_array($rs);
$img = pg_unescape_bytea($rg['foto_b']);
header('Content-type:image/gif;');
// No caso está fixo, mas este deve ser ajustado ao tipo de arquivo
gravado no BD
print($img);
?>
Bem simples, mas funcionou legal aqui !
Creio que dessa forma possa functionar em qualquer linguagem, pois a
funcao pg_unescape_bytea e pg_escape_bytea simplesmente formatam
corretamente para inserir no bando e para saida "na tela".
Abaixo segue como elas funcionam :
UNESCAPE
$search = array(chr(92), chr(0), chr(39));
$replace = array('\\\134', '\\\000', '\\\047');
$binData = str_replace($search, $replace, $binData);
return $binData;
ESCAPE
$search = array('\\\134', '\\\000', '\\\047');
$replace = array(chr(92), chr(0), chr(39));
$binData = str_replace($search, $replace, $binData);
return $binData;
Att:
Thiago Risso
On 10/6/06, Alberto Ivo <[EMAIL PROTECTED]> wrote:
>
>
> On 10/6/06, Marcelo Angelo da Cunha Battistini
> <[EMAIL PROTECTED]> wrote:
> >
> >
> > Nunca usei JPS, eu acho que é que nem PHP. e aproveitando você tem como
> me passar como configurar
> > o servidor para usar JSP e um programa como exemplo?
>
> Marcelo, por enquanto ainda não, pois estou aprendendo.. quando souber eu
> passo sim, com certeza..
>
> _______________________________________________
> Grupo de Usuários do PostgreSQL no Brasil
> Antes de perguntar consulte o manual
> http://pgdocptbr.sourceforge.net/
>
> Para editar suas opções ou sair da lista acesse a página da lista em:
> http://pgfoundry.org/mailman/listinfo/brasil-usuarios
>
>
_______________________________________________
Grupo de Usuários do PostgreSQL no Brasil
Antes de perguntar consulte o manual
http://pgdocptbr.sourceforge.net/
Para editar suas opções ou sair da lista acesse a página da lista em:
http://pgfoundry.org/mailman/listinfo/brasil-usuarios