Hallo fleissige Helferlein!
Wieder mal ein Problem bei meiner Beschäftigung mit LAMP! Linux (SuSE 7.0), Apache, mySQL, PHP4 und ein Problem:
Für meine Digital-Foto-Datenbank (mit der ich in das Datenbanken eindringen will) habe ich zwei Scripte: eins, was die Daten einliest (Also Bilddatei mit mehreren Kommentarfeldern): das funktioniert. Wenn ich aber die Bilder auslesen will, erscheint die Fehlermeldung: 'This document contained no data'. Nun habe ich das php4-script zum Auslesen der Bilder so geändert, dass es statt der Bilder nur die Kommentare ausgeben soll, das geht!
Also: Textinhalte können ausgelesen werden, Binärdaten (Bilder im jpeg-, gif- oder png-Format) nicht.
Nun dachte ich an die GD-Bibliothek, aber hier hat die SuSE 7.0 noch eine 1.27.??, d.h. lt. Definition müssten alle o.g. (und auch testweise in meiner DB abgelegten) auslesbar sein !?!
Wer hat noch eine Idee?
Danke schonmal! Peter.
Hallo!
Am Donnerstag, 4. Januar 2001 17:37 schrieb Peter Zabelt:
Für meine Digital-Foto-Datenbank (mit der ich in das Datenbanken eindringen will) habe ich zwei Scripte: eins, was die Daten einliest (Also Bilddatei mit mehreren Kommentarfeldern): das funktioniert. Wenn ich aber die Bilder auslesen will, erscheint die Fehlermeldung: 'This document contained no data'.
Da hat der Apache recht wenig zu tun bei dir ;)
Nun habe ich das php4-script zum Auslesen der Bilder so geändert, dass es statt der Bilder nur die Kommentare ausgeben soll, das geht!
Weil nämlich die Bilder gar nicht erst vom PHP "reingeschleust" werden in die Daten.
Also: Textinhalte können ausgelesen werden, Binärdaten (Bilder im jpeg-, gif- oder png-Format) nicht.
Nun dachte ich an die GD-Bibliothek, aber hier hat die SuSE 7.0 noch eine 1.27.??, d.h. lt. Definition müssten alle o.g. (und auch testweise in meiner DB abgelegten) auslesbar sein !?!
GD hat ja mehrere recht inkompatible Versionen. Auf GIF solltest du natürlich verzichten, das wird auch nicht mehr supportet, richtig so! Ansonsten GD 1.8, die tut's bei meinen Skripten mit Png und Jpg. Am besten gleich eine generische Funktion schreiben, formatunabhängig. Hab grad mal nachgesehen (boutell.com), 1.8.3 ist dort die neueste, also was SuSE da gemacht hat? Die 1.6 ist doch schon uralt?!
Josef Spillner
On Thu, Jan 04, 2001 at 05:37:08PM +0100, Peter Zabelt wrote:
Hallo fleissige Helferlein!
Wieder mal ein Problem bei meiner Beschäftigung mit LAMP! Linux (SuSE 7.0), Apache, mySQL, PHP4 und ein Problem:
Für meine Digital-Foto-Datenbank (mit der ich in das Datenbanken eindringen will) habe ich zwei Scripte: eins, was die Daten einliest (Also Bilddatei mit mehreren Kommentarfeldern): das funktioniert. Wenn ich aber die Bilder auslesen will, erscheint die Fehlermeldung: 'This document contained no data'. Nun habe ich das php4-script zum Auslesen der Bilder so geändert, dass es statt der Bilder nur die Kommentare ausgeben soll, das geht!
Also: Textinhalte können ausgelesen werden, Binärdaten (Bilder im jpeg-, gif- oder png-Format) nicht.
Also, wenn ich das richtig verstehe sind deine Bilder in einer Datenbank (nennen wir sie 'Images') in einer Spalte(nennen wir sie 'pic') vom Typ BLOB gespeichert. Dann müsste folgende Anweiungen helfen: --------------------------- <?php #... Aufbau der Verbindung $res = mysql_query("SELECT pic FROM Images WHERE name = 'haus.gif'"); $row = mysql_fetch_array($res); header('Content-type: image/gif'); echo $row["pic"]; ?> ---------------------------
Ciao, Tobias
Hallo Tobias u.a.!
Danke für Deine AW! Es funktionierte inzwischen wieder, aber vielleicht darf ich nochmal nerven?
Das Bild wird also jetzt ausgegeben, aber ie schaffe ich es, dass das Bild UND darüber oder darunter der ebenfalls abgespeicherte Text BESCHREIBUNG ausgegeben werden?
Also, wenn ich das richtig verstehe sind deine Bilder in einer Datenbank (nennen wir sie 'Images') in einer Spalte(nennen wir sie 'pic') vom Typ BLOB gespeichert. Dann müsste folgende Anweiungen helfen:
<?php #... Aufbau der Verbindung $res = mysql_query("SELECT pic FROM Images WHERE name = 'haus.gif'"); $row = mysql_fetch_array($res); header('Content-type: image/gif'); echo $row["pic"]; ?>
Ciao, Tobias
Danke schon mal! Peter.
Am Sam den 06 Jan 2001 um 11:38:45 +0100 schrieb Peter Zabelt:
Hallo Tobias u.a.!
Danke für Deine AW! Es funktionierte inzwischen wieder, aber vielleicht darf ich nochmal nerven?
Das Bild wird also jetzt ausgegeben, aber ie schaffe ich es, dass das Bild UND darüber oder darunter der ebenfalls abgespeicherte Text BESCHREIBUNG ausgegeben werden?
Du kannst nicht in einem einzelnen Dokument Bilder und HTML ausgeben, was aber gar nicht nötig ist. Die php Seite, die die Texte ausgibt sollte eine weitere php Seite mit dem gewünschten Bild als Parameter aufrufen. <img src="http://myhost/image.php?name=haus.gif">
Also, wenn ich das richtig verstehe sind deine Bilder in einer Datenbank (nennen wir sie 'Images') in einer Spalte(nennen wir sie 'pic') vom Typ BLOB gespeichert. Dann müsste folgende Anweiungen helfen:
Das Skript von Tobias wird dann zu image.php.
<?php #... Aufbau der Verbindung $res = mysql_query("SELECT pic FROM Images WHERE name = 'haus.gif'");
Nur eben mit dem Bild als Parameter: $res = mysql_query("SELECT pic FROM Images WHERE name =$name);
$row = mysql_fetch_array($res);
header('Content-type: image/gif'); echo $row["pic"]; ?>
Natürlich sollte man vorher noch irgendwie prüfen, ob unser Parameter $name nicht bösen Code enthält.
andre
lug-dd@mailman.schlittermann.de