Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: BLOB niet uit te lezen in LAMP server?  (gelezen 951 keer)

Offline anko

  • Lid
BLOB niet uit te lezen in LAMP server?
« Gepost op: 2007/03/14, 21:00:45 »
Ik weet niet of deze vraag op dit forum en in dit onderdeel hoort, maar ik denk dat mijn probleem ontstaat door een configuratiebestand dus ik waag het er maar op. Als het niet goed is hoor/lees ik het wel.

Ik heb de LAMP server geinstalleerd van https://wiki.ubuntu.com/NlLampHowto. Deze LAMP dient uitsluitend voor snelle lokale testen en alles draait, echter niet helemaal goed.

Op een externe server heb ik een website gezet waarin foto's als BLOB in de MySQL database worden opgeslagen.
Met onderstaande php wordt een foto opgehaald uit de database en getoond op mijn pagina. Op het echte WWW werkt dat. Op mijn interne wwwtje niet.

In de te tonen pagina wordt met deze code de  foto_ophaal.php aangeroepen:
echo "";foto_ophaal.php ziet er zo uit.

header("Content-type: image/jpeg"); // act as a jpg file to browser

include('../incl/dbase.php');

$query = "SELECT obj_img, obj_width, obj_height FROM ap_object WHERE obj_index = $id";

$result = mysql_query($query, $resource);

$row = mysql_fetch_array($result);

//De maximale maten die ik wil tonen

$dest_width = 150;

$dest_height = 150;

//Als breedte of hoogte groter is dan 150

if (($row['obj_width'] > 150) OR ($row['obj_height'] > 150)) {

//Nieuwe maten in de verhoudingen van het origineel

if (($row['obj_height']) > $row['obj_width']) {

  $dest_width = round(($dest_height / $row['obj_height']) * $row['obj_width']);

} else {

  $dest_height = round(($dest_width / $row['obj_width']) * $row['obj_height']);

}

} else {

$dest_width = $row['obj_width'];
$dest_height = $row['obj_height'];

}

$src_img = imagecreatefromstring($row['obj_img']); // try to create image

$dest_img = imagecreatetruecolor($dest_width, $dest_height)

or die("niet gelukt");

//imagejpeg($dest_img);

$result = imagecopyresampled( $dest_img, $src_img, 0, 0, 0, 0, $dest_width, $dest_height, $row['obj_width'], $row['obj_height']); // resize the image

ob_start(); // Start capturing stdout.

imagejpeg($dest_img); // As though output to browser.

$jpg = ob_get_contents(); // the raw jpeg image data.

ob_end_clean(); // Dump the stdout so it does not screw other output.

echo $jpg;

?>
Dit werkt goed op de externe server maar, zoals jullie al hadden geraden, niet op mijn LAMP server.
Het uploaden van een foto en in de database zetten lukt wel!

Vermoedelijk staat er ergens in een configuratiebestandje iets staat waardoor ik deze foto niet kan uitlezen.
Ik heb alleen geen flauw idee waar (en of mijn vermoeden juist is).
Als je denkt te weten dat de weg recht is, mis je de bocht.
lidnummer 3487(?)

Offline Tukcedo

  • Lid
    • http://www.tukcedo.nl
BLOB niet uit te lezen in LAMP server?
« Reactie #1 Gepost op: 2007/03/14, 23:00:24 »
Je zou wel es gelijk kunnen hebben. In httpd.conf staan de mimetypes die herkend worden. Mogelijk moet je daar php, gif en jpg aan toevoegen. Misschien is dat 't?
Tukcedo Services - Unix en Linux Consultants
http://www.tukcedo.nl

Offline anko

  • Lid
BLOB niet uit te lezen in LAMP server?
« Reactie #2 Gepost op: 2007/03/15, 08:34:17 »
Hallo tukcedo,
Helaas nee. Het bestand:  /etc/apache2/httpd.conf heeft deze inhoud
Citaat
# This is here for backwards compatability reasons and to support
#  installing 3rd party modules directly via apxs2, rather than
#  through the /etc/apache2/mods-{available,enabled} mechanism.
#
#LoadModule mod_placeholder /usr/lib/apache2/modules/mod_placeholder.so
Ook verder gezocht naar de mime types uiteraard want ik weet dat ik die 'vroeger' bij apache 1.3 wel eens tegengekomen ben.

In apache2,conf staan wel de AddIcon, AddLanguage e.d. maar geen AddType. De jpeg en jpg er bij gezet met AddType en de server opnieuw gestart. Echter zonder resultaat. Dus maar weer verwijderd.

Er is een bestand 'Magic' waarin diverse bestanden beschreven staan.  Waar o.a. deze regel staat
Citaat
# JPEG images
0   beshort      0xffd8      image/jpeg
Ik ga er maar van uit dat die regel wel zal kloppen(?)

Overigens bedenk ik, na bovenstaande uitgeprobeerd te hebben, dat ik wel gewone plaatjes kan laden in mijn pagina's op de LAMP en dit dus sowieso waarschijnlijk niet de reden was.
Het kan natuurlijk ook zijn dat bij het laden naar MySQL er iets fout gaat waardoor en geen goed binaire bestand in komt te staan, maar dan zou ik toch wel een foutmelding hebben gehad?

In de logs zie ik geen fouten staan.

Verder nog een idee?
Als je denkt te weten dat de weg recht is, mis je de bocht.
lidnummer 3487(?)

Offline anko

  • Lid
BLOB niet uit te lezen in LAMP server?
« Reactie #3 Gepost op: 2007/03/15, 10:00:49 »
Oorzaak gevonden!
Maar wat nu?

Het blijkt dat in het lokale php.ini de register_globals op Off staan.
Bij de hostingprovider waar deze site staat (Lycos) is dit On.
Ook bij YourHosting, waar ik ook een site heb staan is dit On.

Ik heb het lokaal nu ook On gezet en dat zal voor mijn LAMP (die immers alleen lokaal gebruikt wordt) niet zo'n probleem zijn, maar hoe gevaarlijk is het bij de providers?
Als je denkt te weten dat de weg recht is, mis je de bocht.
lidnummer 3487(?)