ugrás a tartalomhoz

Több kép visszaadása egy HTTP válaszban

Anonymous · 2005. Okt. 15. (Szo), 07.12
Sziasztok!

Egy Postgresql adatbázisból szeretnék képeket megjeleníteni az alábbi kis progival:
<?php
header("Content-type: image/jpeg"); 
$conn=pg_connect("dbname=pic user=jomagam password=xxxxx");
pg_exec($conn,"begin");
$result=pg_exec($conn,"select * from pictest;");
$fd=pg_loopen($conn,pg_result($result,0,image),"r");
pg_loreadall($fd);

$fd=pg_loopen($conn,pg_result($result,1,image),"r");
pg_loreadall($fd);

$fd=pg_loopen($conn,pg_result($result,2,image),"r");
pg_loreadall($fd);

pg_loclose($fd);
pg_exec($conn,"commit");
pg_close();
?>
A probléma az, hogy mindíg csak az első lekérdezés hajtódik végre (most az első képet jeleníti meg, ha a nulla helyébe egyest írok, akkor a másodikat, stb... Mit szúrtam el vajon?

Segítségeteket előre is köszönöm:

Imre
 
1

Kiegészítés

Anonymous · 2005. Okt. 15. (Szo), 07.33
Még annyit az előzőhöz, hogy így átírva:
<?php
//header("Content-type: image/jpeg"); 
$conn=pg_connect("dbname=pic user=jomagam password=xxxxxx");
pg_exec($conn,"begin");
$result=pg_exec($conn,"select * from pictest;");

pg_lo_export($conn,pg_result($result,0,image),"/tmp/aaaaa.jpg");
pg_lo_export($conn,pg_result($result,1,image),"/tmp/bbbbb.jpg");
pg_lo_export($conn,pg_result($result,2,image),"/tmp/ccccc.jpg");

pg_exec($conn,"commit");
pg_close();
?>
szépen létrehozza mindhárom képet, tehát az adatbázissal minden rendben.
2

Egy kérés

Jano · 2005. Okt. 15. (Szo), 09.19
A probléma valószínűleg az, hogy ami meghívja ezt a scriptet az egy fájlt vár eredményül. Te a headerben jelzed is, hogy jön egy kép de egy kép neve alatt nem lehet több képet átküldeni! Ezt a scriptet annyiszor kell meghívni ahány képet kiakarsz küldeni.
3

Ismételt meghívások

Anonymous · 2005. Okt. 15. (Szo), 16.03
Köszi a választ! Megpróbáltam include -ként beemelni az alábbiak szerint, de sajnos változatlanul nem megy. (Igaz, most már egyik képet sem jeleníti meg, csak egy hibaüzenetet, miszerint
"http://localhost/tesztek/4.php” cannot be displayed, because it contains errors." - és ami az érdekes, ezt képként, nem szövegként jeleníti meg.. :-(
<?php

function kep_kiir($i)

{
header("Content-type: image/jpeg"); 
$conn=pg_connect("dbname=pic user=xxxxx password=xxxxxx");
pg_exec($conn,"begin");
$result=pg_exec($conn,"select * from pictest");
$fd=pg_lo_open($conn,$i,"r");
pg_lo_read_all($fd);
pg_lo_close($fd);
pg_close($conn);
}

$i=0;
kep_kiir($i);
$i++;
kep_kiir($i);
$i++;
kep_kiir($i);
?>
4

Még mindig több képet adsz vissza...

zila · 2005. Okt. 16. (V), 08.49
A képmegjelenítő php-det tedd egy külön fileba (4.php), a tesztfileod pedig lehet akár html is, benne a következők:

<img src="/4.php?i=0"><br>
<img src="/4.php?i=1"><br>
<img src="/4.php?i=2">
A 4.php tartalma:

<?php
$i = $_GET['i'];

header("Content-type: image/jpeg"); 
$conn=pg_connect("dbname=pic user=xxxxx password=xxxxxx");
pg_exec($conn,"begin");
$result=pg_exec($conn,"select * from pictest");
$fd=pg_lo_open($conn,$i,"r");
pg_lo_read_all($fd);
pg_lo_close($fd);
pg_close($conn);
?>
üdv,
Zila
5

Javulás...

Anonymous · 2005. Okt. 16. (V), 10.34
Köszi a választ, a helyzet annyiból javult, hogy eddig csak egy képet jelenített meg, most hármat nem...:-) (Három "üres" képhely jelenik csak meg.)