FAQ
Hola a todos.

Estoy tratando de guardar un archivo en mi base de datos postgresql, y
luego poder visualizarla. Concretamente lo que estoy tratando de hacer
es guardar un archivo jpg y otro svg.

Este es el código para el insert:

<?php
$con= pg_connect("host= localhost dbname= nombredb user= pablo password=
XXXXX");

$fp= fopen('logo_videovigilancia.jpg', 'rb');
$buffer= fread($fp, filesize('logo_videovigilancia.jpg'));
$archivo= pg_escape_bytea($buffer);
fclose($fp);

$insert= 'insert into regaccesos_graf_totalregistros(informe, grafico)
values(28, \''.$archivo.'\')';
$q= pg_query($insert);

if($q): echo 'Correcto'; else: echo 'Mal'; endif;

?>

Creo que la insercción se hace bien.

Para mostrarlo.

<?php
$con= pg_connect("host= localhost dbname= nombredb user= pablo password=
XXXX");

$sel= 'select * from regaccesos_graf_totalregistros';
$q= pg_query($sel);

while($row= pg_fetch_array($q)){ $graf=
pg_unescape_bytea($row['grafico']);

echo $row['id'].'<br>';
echo $row['informe'].'<br>';
echo $graf;
}

?>

Esto me muestra caracteres en lugar de la imagen.

He buscado información sobre esto y no lo consigo.

¿Alguna idea?.
--
Saludos cordiales.
Pablo.

Search Discussions

  • Philipp Keweloh at Mar 15, 2010 at 7:38 pm
    Hola Pablo.

    Especifica el Content-type en la cabecera para que lo entienda el navegador:

    header("Content-type: image/jpeg");

    A ver si es eso, un saludo.

    --
    Philipp Keweloh

    El 15 de marzo de 2010 18:58, Pablo Braulio <brulics@gmail.com> escribió:
    Hola a todos.

    Estoy tratando de guardar un archivo en mi base de datos postgresql, y
    luego poder visualizarla. Concretamente lo que estoy tratando de hacer es
    guardar un archivo jpg y otro svg.

    Este es el código para el insert:

    <?php
    $con= pg_connect("host= localhost dbname= nombredb user= pablo password=
    XXXXX");

    $fp= fopen('logo_videovigilancia.jpg', 'rb');
    $buffer= fread($fp, filesize('logo_videovigilancia.jpg'));
    $archivo= pg_escape_bytea($buffer);
    fclose($fp);

    $insert= 'insert into regaccesos_graf_totalregistros(informe, grafico)
    values(28, \''.$archivo.'\')';
    $q= pg_query($insert);

    if($q): echo 'Correcto'; else: echo 'Mal'; endif;

    ?>

    Creo que la insercción se hace bien.

    Para mostrarlo.

    <?php
    $con= pg_connect("host= localhost dbname= nombredb user= pablo password=
    XXXX");

    $sel= 'select * from regaccesos_graf_totalregistros';
    $q= pg_query($sel);

    while($row= pg_fetch_array($q)){ $graf=
    pg_unescape_bytea($row['grafico']);

    echo $row['id'].'<br>';
    echo $row['informe'].'<br>';
    echo $graf;
    }

    ?>

    Esto me muestra caracteres en lugar de la imagen.

    He buscado información sobre esto y no lo consigo.

    ¿Alguna idea?.
    --
    Saludos cordiales.
    Pablo.

    --
    PHP Spanish Localization Talk Mailing List (http://www.php.net/)
    To unsubscribe, visit: http://www.php.net/unsub.php
  • Philipp Keweloh at Mar 15, 2010 at 9:59 pm
    Hola Pablo.

    Pues sólo se me ocurre con marcado HTML, o bien XML si no es para humanos.

    --
    Philipp Keweloh

    El 15 de marzo de 2010 20:45, Pablo Braulio <brulics@gmail.com> escribió:
    Si, eso ya lo había probado.

    Yo lo que quiero es que la muestre junto con otros datos de texto. No que
    muestre sólo la imagen.

    ¿Se puede hacer eso?.

    Philipp Keweloh escribió:
    Hola Pablo.

    Especifica el Content-type en la cabecera para que lo entienda el
    navegador:

    header("Content-type: image/jpeg");

    A ver si es eso, un saludo.

    --
    Philipp Keweloh

    El 15 de marzo de 2010 18:58, Pablo Braulio <brulics@gmail.com <mailto:
    brulics@gmail.com>> escribió:


    Hola a todos.

    Estoy tratando de guardar un archivo en mi base de datos postgresql,
    y luego poder visualizarla. Concretamente lo que estoy tratando de
    hacer es guardar un archivo jpg y otro svg.

    Este es el código para el insert:

    <?php
    $con= pg_connect("host= localhost dbname= nombredb user= pablo
    password= XXXXX");

    $fp= fopen('logo_videovigilancia.jpg', 'rb');
    $buffer= fread($fp, filesize('logo_videovigilancia.jpg'));
    $archivo= pg_escape_bytea($buffer);
    fclose($fp);

    $insert= 'insert into regaccesos_graf_totalregistros(informe,
    grafico) values(28, \''.$archivo.'\')';
    $q= pg_query($insert);

    if($q): echo 'Correcto'; else: echo 'Mal'; endif;

    ?>

    Creo que la insercción se hace bien.

    Para mostrarlo.

    <?php
    $con= pg_connect("host= localhost dbname= nombredb user= pablo
    password= XXXX");

    $sel= 'select * from regaccesos_graf_totalregistros';
    $q= pg_query($sel);

    while($row= pg_fetch_array($q)){ $graf=
    pg_unescape_bytea($row['grafico']);

    echo $row['id'].'<br>';
    echo $row['informe'].'<br>';
    echo $graf;
    }

    ?>

    Esto me muestra caracteres en lugar de la imagen.

    He buscado información sobre esto y no lo consigo.

    ¿Alguna idea?.
    -- Saludos cordiales.
    Pablo.

    -- PHP Spanish Localization Talk Mailing List (http://www.php.net/
    )
    To unsubscribe, visit: http://www.php.net/unsub.php
    --
    Saludos cordiales.
    Pablo.
  • Philipp Keweloh at Mar 15, 2010 at 10:26 pm
    Perdona, el código estaba incompleto:

    echo "<img src=\"data:image/jpeg;base64,".base64_encode($graf)."\" />";

    --
    Philipp Keweloh

    2010/3/15 Philipp Keweloh <skunk1@gmail.com>
    Hola Pablo:

    Puedes hacerlo codificando la imagen en base64 y utilizar el esquema data
    [1] para introducirlo directamente en el atributo "src" de la imagen, es
    decir:

    <img src="data:image/jpeg;base64,".base64_encode($graf)."\" />

    Y luego ya el resto de marcado para los textos.

    A ver si ahora si te sirve.

    [1] http://es.wikipedia.org/wiki/Data:_URL

    --
    Philipp Keweloh

    PD: Por favor, no olvides responder siempre a la lista para no truncar el
    hilo.

    El 15 de marzo de 2010 23:02, Pablo Braulio <brulics@gmail.com> escribió:
    ¿A que te refieres con el marcado html?.

    ¿Con una etiqueta <img >?. En tal caso supongo que antes habría que
    guardarlo en algún directorio.

    Si estoy equivocado, estaría bien saberlo.

    Gracias por tu comentario.

    Philipp Keweloh escribió:
    Hola Pablo.

    Pues sólo se me ocurre con marcado HTML, o bien XML si no es para
    humanos.

    --
    Philipp Keweloh

    El 15 de marzo de 2010 20:45, Pablo Braulio <brulics@gmail.com <mailto:
    brulics@gmail.com>> escribió:


    Si, eso ya lo había probado.

    Yo lo que quiero es que la muestre junto con otros datos de texto.
    No que muestre sólo la imagen.

    ¿Se puede hacer eso?.

    Philipp Keweloh escribió:

    Hola Pablo.

    Especifica el Content-type en la cabecera para que lo entienda
    el navegador:

    header("Content-type: image/jpeg");

    A ver si es eso, un saludo.

    -- Philipp Keweloh

    El 15 de marzo de 2010 18:58, Pablo Braulio <brulics@gmail.com
    escribió:


    Hola a todos.

    Estoy tratando de guardar un archivo en mi base de datos
    postgresql,
    y luego poder visualizarla. Concretamente lo que estoy
    tratando de
    hacer es guardar un archivo jpg y otro svg.

    Este es el código para el insert:

    <?php
    $con= pg_connect("host= localhost dbname= nombredb user= pablo
    password= XXXXX");

    $fp= fopen('logo_videovigilancia.jpg', 'rb');
    $buffer= fread($fp, filesize('logo_videovigilancia.jpg'));
    $archivo= pg_escape_bytea($buffer);
    fclose($fp);

    $insert= 'insert into regaccesos_graf_totalregistros(informe,
    grafico) values(28, \''.$archivo.'\')';
    $q= pg_query($insert);

    if($q): echo 'Correcto'; else: echo 'Mal'; endif;

    ?>

    Creo que la insercción se hace bien.

    Para mostrarlo.

    <?php
    $con= pg_connect("host= localhost dbname= nombredb user= pablo
    password= XXXX");

    $sel= 'select * from regaccesos_graf_totalregistros';
    $q= pg_query($sel);

    while($row= pg_fetch_array($q)){ $graf=
    pg_unescape_bytea($row['grafico']);

    echo $row['id'].'<br>';
    echo $row['informe'].'<br>';
    echo $graf;
    }

    ?>

    Esto me muestra caracteres en lugar de la imagen.

    He buscado información sobre esto y no lo consigo.

    ¿Alguna idea?.
    -- Saludos cordiales.
    Pablo.

    -- PHP Spanish Localization Talk Mailing List
    (http://www.php.net/)
    To unsubscribe, visit: http://www.php.net/unsub.php


    -- Saludos cordiales.
    Pablo.
    --
    Saludos cordiales.
    Pablo.
  • Pablo Braulio at Mar 16, 2010 at 9:43 am
    Hola.

    El código que me has puesto funciona perfectamente para el jpg.

    El caso es que lo que necesito guardar y sacar son tanto archivos jpg,
    como svg.

    En html el svg se ve de este modo:

    <object data="ruta/archivo.svg" type="image/svg+xml"></object>

    He probado con lo siguiente pero no se ve:

    <?php
    $con= pg_connect("host= localhost dbname= aldiges_prod user= pablo
    password= capgirall");

    $sel= 'select * from regaccesos_graf_totalregistros';
    $q= pg_query($sel);

    while($row= pg_fetch_array($q)){ $graf=
    pg_unescape_bytea($row['grafico']);

    echo '<object data="'.base64_encode($graf).'"
    type="image/svg+xml"></object>';
    }

    ?>

    A lo mejor habría que guardarlo en algún directorio, ¿no?.

    Gracias por la ayuda.

    Philipp Keweloh escribió:
    Perdona, el código estaba incompleto:

    echo "<img src=\"data:image/jpeg;base64,".base64_encode($graf)."\" />";

    --
    Philipp Keweloh

    2010/3/15 Philipp Keweloh <skunk1@gmail.com
    Hola Pablo:

    Puedes hacerlo codificando la imagen en base64 y utilizar el esquema
    data [1] para introducirlo directamente en el atributo "src" de la
    imagen, es decir:

    <img src="data:image/jpeg;base64,".base64_encode($graf)."\" />

    Y luego ya el resto de marcado para los textos.

    A ver si ahora si te sirve.

    [1] http://es.wikipedia.org/wiki/Data:_URL

    --
    Philipp Keweloh

    PD: Por favor, no olvides responder siempre a la lista para no
    truncar el hilo.

    El 15 de marzo de 2010 23:02, Pablo Braulio <brulics@gmail.com
    escribió:

    ¿A que te refieres con el marcado html?.

    ¿Con una etiqueta <img >?. En tal caso supongo que antes habría
    que guardarlo en algún directorio.

    Si estoy equivocado, estaría bien saberlo.

    Gracias por tu comentario.

    Philipp Keweloh escribió:

    Hola Pablo.

    Pues sólo se me ocurre con marcado HTML, o bien XML si no es
    para humanos.

    --
    Philipp Keweloh

    El 15 de marzo de 2010 20:45, Pablo Braulio
    <brulics@gmail.com <mailto:brulics@gmail.com escribió:


    Si, eso ya lo había probado.

    Yo lo que quiero es que la muestre junto con otros datos
    de texto.
    No que muestre sólo la imagen.

    ¿Se puede hacer eso?.

    Philipp Keweloh escribió:

    Hola Pablo.

    Especifica el Content-type en la cabecera para que lo
    entienda
    el navegador:

    header("Content-type: image/jpeg");

    A ver si es eso, un saludo.

    -- Philipp Keweloh

    El 15 de marzo de 2010 18:58, Pablo Braulio
    <brulics@gmail.com <mailto:brulics@gmail.com <mailto:brulics@gmail.com
    escribió:


    Hola a todos.

    Estoy tratando de guardar un archivo en mi base de
    datos
    postgresql,
    y luego poder visualizarla. Concretamente lo que estoy
    tratando de
    hacer es guardar un archivo jpg y otro svg.

    Este es el código para el insert:

    <?php
    $con= pg_connect("host= localhost dbname= nombredb
    user= pablo
    password= XXXXX");

    $fp= fopen('logo_videovigilancia.jpg', 'rb');
    $buffer= fread($fp,
    filesize('logo_videovigilancia.jpg'));
    $archivo= pg_escape_bytea($buffer);
    fclose($fp);

    $insert= 'insert into
    regaccesos_graf_totalregistros(informe,
    grafico) values(28, \''.$archivo.'\')';
    $q= pg_query($insert);

    if($q): echo 'Correcto'; else: echo 'Mal'; endif;

    ?>

    Creo que la insercción se hace bien.

    Para mostrarlo.

    <?php
    $con= pg_connect("host= localhost dbname= nombredb
    user= pablo
    password= XXXX");

    $sel= 'select * from regaccesos_graf_totalregistros';
    $q= pg_query($sel);

    while($row= pg_fetch_array($q)){ $graf=
    pg_unescape_bytea($row['grafico']);

    echo $row['id'].'<br>';
    echo $row['informe'].'<br>';
    echo $graf;
    }

    ?>

    Esto me muestra caracteres en lugar de la imagen.

    He buscado información sobre esto y no lo consigo.

    ¿Alguna idea?.
    -- Saludos cordiales.
    Pablo.

    -- PHP Spanish Localization Talk Mailing List
    (http://www.php.net/)
    To unsubscribe, visit: http://www.php.net/unsub.php


    -- Saludos cordiales.
    Pablo.


    --
    Saludos cordiales.
    Pablo.

    --
    Saludos cordiales.
    Pablo.

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupphp-general-es @
categoriesphp
postedMar 15, '10 at 5:58p
activeMar 16, '10 at 9:43a
posts5
users2
websitephp.net

2 users in discussion

Philipp Keweloh: 3 posts Pablo Braulio: 2 posts

People

Translate

site design / logo © 2022 Grokbase