[PHP/PostgreSQL]Afgedrukte afbeelding wordt niet weergegeven

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ik heb een probleem met de volgende code,
als ik dit script uitvoer, dan geeft hij als output een .php pagina die ik dan zou moeten opslaan i.p.v.
dat hij een jpg plaatje laat zien, wat doe ik fout?

ik weet dat hij wel het oid object goed uit de database haalt, want als ik dus deze pagina hernoem naar een .jpg dan is het inderdaad het plaatje wat ik nodig had, maar hoe open ik het plaatje in deze pagina?

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?php
    #connecting to the database
    $dbh = pg_connect("dbname=xxx user=xxx host=xxx");
    
    // dit loopje zet alle $_GET variabelen in lokale veriabelen
    foreach($_GET as $key => $value) {
        $varname = $key;
        $varname = $value;
    }
    
    if (!dbh)
    {
        echo "Cannot open connection to the database<br>";
        exit;
    }
    
    $sql = "SELECT logo_blur, naam from bedrijf where bedrijf_id = $id";
    $result = pg_exec($dbh, $sql);
    $data = pg_fetch_row($result, 0);
    if (!$data)
    {
        echo "undefined picture<br>";
    }
    else
    {
        Header("Content-type: image/jpg");
        pg_exec($dbh, "BEGIN");
        $ofp = pg_loopen($data[0], "r");
        if (!$ofp)
        {
            echo "cannot open BLOB<br>\n";
        }
        $img = pg_loreadall($ofp);
        print $img;
        pg_loclose($ofp);
        pg_exec($dbh, "END");
    }
?>

Acties:
  • 0 Henk 'm!

  • Wolfboy
  • Registratie: Januari 2001
  • Niet online

Wolfboy

ubi dubium ibi libertas

Probeer het ook eens met een andere browser, bijvoorbeeld firefox of opera.
Die kijken namelijk als eerste naar het mime-type in plaats van de extensie.

Blog [Stackoverflow] [LinkedIn]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
tja in mozilla firefox op linux doet hij het wel :|

leuk, iemand een idee hoe ik dit oplos zodat hij het ook in IE gaat doen?

Acties:
  • 0 Henk 'm!

  • Wolfboy
  • Registratie: Januari 2001
  • Niet online

Wolfboy

ubi dubium ibi libertas

Comment de header en de print eventjes uit en kijk of je nog iets van output krijgt, ik heb namelijk het vermoeden dat er iets van output is dat ervoor zorgt dat IE denkt dat het geen JPG bestand is.

Blog [Stackoverflow] [LinkedIn]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
nu wordt het nog vager, nu ik de Header en print uitzet laat hij keurig het plaatje zien
wat een wazige browser is internet explorer soms

ook in mozilla firefox lijkt het gewoon nog goed te gaan, maar ik vind het niet echt een nette oplossing zo, zonder headers aan te geven.

[ Voor 34% gewijzigd door Verwijderd op 09-08-2005 13:46 ]


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Staan er geen enters of spaties voor of na de PHP-openings- of sluittag?

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
m'n code is precies zoals hierboven aangegeven dus nee of ik moet je niet goed begrepen hebben, maar deze hele code staat in een aparte pagina.

Acties:
  • 0 Henk 'm!

  • Vesta
  • Registratie: November 2004
  • Niet online
volgens de manual returnt pg_loreadall() een int. Omdat je die print gaat het mis. Deze functie stuurt de output meteen naar de browser, dus de print is eigenlijk overbodig ;)

PS er zit een fout op regel 11:
PHP:
1
if (!dbh)
moet zijn:
PHP:
1
if (!$dbh)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
heel erg bedankt :)

die print was inderdaad het probleem, heb de header informatie weer gewoon aan kunnen zetten en het werkt nu overal en die $ is er inderdaad uitgeslopen :) bedankt daarvoor :)

probleem opgelost
Pagina: 1