[Gfoss] immagini in postgresql

Flavio Rigolon flavio.rigolon at gmail.com
Mon May 7 15:24:13 CEST 2007


Il 03/05/07, Flavio Rigolon <flavio.rigolon a gmail.com> ha scritto:
>
> Grazie per l'indicazione.
>
> Per ora ho provato così:
>
> ###
> CREATE TABLE tbl_foto (
> id integer NOT NULL,
> nome text,
> foto oid);
> ###
>
> poi ho popolato la tabella con i record che avevo; quindi inserito le
> immagini
>
> ###
> UPDATE tbl_foto SET
> foto=lo_import('/percorso/al/file.png')
> where id = 'tot';
> ###
>
> mi pare funzioni, ma se ci sono altri chiarimenti sono ben accetti.


Ciao a tutti.
Riprendo un thread che ho avviato qualche giorno fa.
Sto cercando di visualizzare (mediate PHP) i dati archiviati in un DB
Postgresql/Postgis attraverso il browser web; tra i dati vi sono anche
immagini.
Ho agito in questo modo:

1) creazione della tabella di archiviazione immagini:
CREATE TABLE foto(
id integer NOT NULL,
nome varchar(50),
image_path varchar(100));

2) popolamento della tabella creata e inserimento dei path delle immagini
(non ho più usato il formato dati OID ma ho salvato il percorso al file
immagine da caricare; in questo modo non ci dovrebbero più essere problemi
durante il dump come indicato gentilmente da Luigi). Utilissimo e, a mio
modesto parere, molto ben fatto il lavoro di tesi di Fabio Pratesi
consigliato da Massimo!

INSERT INTO foto
VALUES('1','foto1','percorso/al/file.png');

e così via...

3) Creazione dello script PHP (image.php, riportato qui sotto) per il
caricamento dei dati su una pagina HTML.

************************************************************************
<html>
<head><TITLE>Image</TITLE></head>

<body>

<table align="center"><TR><TD align="center">
<h2>Elenco Immagini</h2></TD></TR>
<TR><TD align="center"><h4>Elenco</h4></TD></TR>
</table>

<?php
//dihiarazione variabile $i per colori
$i=1;
//fine dihiarazione variabile $1 per colori

// Connessione, selezione del database
$dbconn = pg_connect("host=localhost dbname=db_name user=utente
password=******")
    or die('Could not connect: ' . pg_last_error());

// Strutturazione della query e formattazione della tabella che
conterr&#224; i risultati
if(!$query = pg_query("SELECT id,nome,image_path FROM foto"))
die("Errore nella query: " . pg_last_error($dbconn));

echo <<<EOD

<table border ="0" cellspacing="2" cellpadding="2">
    <tr>
        <td style="background-color: rgb(206, 207, 156);"><b>ID</b></td>
        <td style="background-color: rgb(206, 207, 156);"><b>NOME</b></td>
        <td style="background-color: rgb(206, 207,
156);"><b>PERCORSO</b></td>
    </tr>

EOD;

while ($row = pg_fetch_assoc($query)) {

//dichiarazione condizione per la colorazione alternata dei record
if($i%2==1)$color="#f3f3e9"; //primo colore
else $color="#e6e6cc"; //secondo colore
//fine dichiarazione per colori

//dichiarazione incrementale per colorazione alternata dei record
$i++;

    echo
"\n\t<tr
bgcolor=$color>\n\t\t<td>{$row['id']}</td>\n\t\t<td>{$row['nome']}</td>\n\t\t";
    echo
"<td><img src='{$row['image_path']}'></td>\n\t</tr>";

}

echo <<<EOD

</table>

EOD;

// Chiusura della connessione
pg_close($dbconn);
?>
</body>
</html>
***************************************************************************************


4) Puntando il browser sul file image.php sopra riportato ottengo i dati e
le foto visualizzate.

......non so se può essere argomento da wiki; se ritenete (con le opportune
correzioni che magari evidenzierete) lo metto ben volentieri.

a presto
flavio


-- 
io uso GNU/Linux
user #413018 counter.li.org
-------------- parte successiva --------------
Un allegato HTML � stato rimosso...
URL: http://www.faunalia.com/pipermail/gfoss/attachments/20070507/e8fb38d3/attachment-0001.htm 


More information about the Gfoss mailing list