Home | Registrieren | Einloggen | Suchen | Aktuelles


Forum » PHP & MySQL » Mediumblob (Grafik) darstellen Antworten
Mediumblob (Grafik) darstellen

MichiP
Pixelschubser


Beiträge: 5


Hallo Leute!

Ich bin Neu in Eurem Forum und werkle seit einigen Monaten mit PHP rum - Also bin ich kein Anfänger aber ich bin (leider) noch meilenweit vom PHP-Könner weg...

Ich habe eine simple Frage:

Ich habe in einer MYSQL-Datenbank in einer Spalte mit dem Format MEDIUMBLOB Grafiken (GIF bzw. JPG) abgelegt. Wie bringe ich diese zur Anzeige?

Ich habe kein Problem diese aus der DB auszulesen scheitere aber derzeit noch an der Ausgabesequenz hierfür.

Könnt Ihr mir hier bitte einen Ideenanstoss geben!

PS: Bitte keine Grundsatzdiskussion wegen Grafiken in Datenbanken - Dazu gibt es genug andere Threats in Foren. Bei mir geht es leider nicht anders as dies in der DB zu speichern.

Vielen Dank!

Liebe Grüsse aus Wien

  Profil   Editieren   Zitieren

languitar
Foren-Team


Beiträge: 2795


http://de.php.net/manual/de/function.imagecreatefromstring.php

Ich denke mit Beispiel 1 solltest du weiterkommen.

---
Take a look here!
Lichtblick - Einblick - Ausblick

  Profil   E-Mail   Website   Editieren   Zitieren

MichiP
Pixelschubser


Beiträge: 5


Danke für die prompte Antwort!

Leider bring ich es trotzdem nicht hin ;-(

Ich habe es folgendermassen codiert:

1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9:
if ($row['bild'] <> "") {  
	$im = imagecreatefromstring($row['bild']); 
	if ($im !== false) {
		header('Content-Type: image/png');
		imagepng($im);
	} else {
		echo 'Fehler bei der Bildaufbereitung....';
	} 
} 


Die Daten (sprich den Inhalt der Variable $row['bild']) hole ich zuvor direkt via fetch aus der MYSQL-Datenbank (Datentyp Mediumblob).

Als Testdaten habe ich animierte GIFs direkt mittels MYSQL-Front in die Testspalte geladen (möglicherweise passt dies nicht!?).

Jedenfalls bekomme ich bei der Durchführumg auf meiner Testinstallation (XAMPP) folgende Fehlermeldung:

Warning: Cannot modify header information - headers already sent by (output started at C:\Programme\xampp\htdocs\xampp\test.php:6) in C:\Programme\xampp\htdocs\xampp\test.php on line 220

Was mache ich hier falsch?

Danke für Eure Unterstützung!

lG aus Wien
Michi

  Profil   Editieren   Zitieren

languitar
Foren-Team


Beiträge: 2795


erstens musst du dann halt header natülrich image/gif ausgeben und nicht png.
Deine Fehlermeldung heißt aber, dass du vorher schon irgendeine Ausgabe an den Browser schickst, und das darfst du nicht. Also keine echos oder so vorher und auch kein HTML-Code.

---
Take a look here!
Lichtblick - Einblick - Ausblick

  Profil   E-Mail   Website   Editieren   Zitieren

MichiP
Pixelschubser


Beiträge: 5


Nochmals Danke!

Zu Deiner Anmerkung:
Deine Fehlermeldung heißt aber, dass du vorher schon irgendeine Ausgabe an den Browser schickst, und das darfst du nicht. Also keine echos oder so vorher und auch kein HTML-Code.


Ich muss in meinem Fall abwechselnd Texte und die besagten Grafiken ausgeben.

Heiss dies, daß nur die Zeile header('Content-Type: image/png'); einfach vorzuziehen ist?

Ich habe dies nun ganz an den Anfang verschoben:

1: 
2: 
3:
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head>
header('Content-Type: image/gif');
<body>


Nun bekomme ich zwar keine Fehlermeldung mehr, aber es sieht aus als ob ich den Datenstrom des GIFs direkt mit echo ausgeben würde:

GIF89aTS„SB&?7QXA’g Cn`Ë&a®­Y•‰ZЬÿÿË•² ú£‘…йxááwÐÑ…ôô¨þÿ–òõÿÖ£ŸvY !ù ,TSþ "Ždiž¨8¤lë¾0¼ÆtmÓ........

Habt Ihr noch einen Tip für mich!

Vielen Dank!
lG Michi

  Profil   Editieren   Zitieren

languitar
Foren-Team


Beiträge: 2795


Nein, du musst für die Grafikausgabe eine separate Datei benutzen, die nichts anderes macht als die Grafik mit dem Code von oben auszugeben. Die köntnest du dann ja als <img> einbinden.

---
Take a look here!
Lichtblick - Einblick - Ausblick

  Profil   E-Mail   Website   Editieren   Zitieren

MichiP
Pixelschubser


Beiträge: 5


Jetzt hab ich es verstanden - Und schwupps funktioniert es auch!

Vielen Dank!

lG aus Wien
Michi

  Profil   Editieren   Zitieren
 

Antworten
Nach oben