WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   Mit PHP ein Bild aus der Datenbank schreiben (http://www.wcm.at/forum/showthread.php?t=191391)

cssFreak 11.05.2006 08:45

Mit PHP ein Bild aus der Datenbank schreiben
 
Hallo hab wieder einmal eine Frage!!!!

Hab ein kleines CMS geschrieben mit dem ich ein Bild in eine MySQL Datenbank schreibe.....Datentyp in der DB ist BLOB!!!!

Jetzt hab ich aber ein Problem das ganze wieder aus der Datenbank auszulesen!!!!

Wie mach ich das....ich habs schon mit einem einfachen
echo"
".$row['bild']."
";

dann hab ich noch versucht das bild in eine Variable zu schreiben und es dann auszugeben...das funktioniert aber alles ned....gibts da vieleicht eine andere Möglichkeit???

Danke im vorraus...
cssFreak

hewlett 11.05.2006 09:55

wieso willst du das komplette bild in der db speichern, das is ja schwachsinn. vor allem wennst mal mehr bilder hast.

also ich schreib immer nur den pfad in die db, das vereinfacht das ganze doch sehr und die performance der db is auch weit besser.

Philipp 11.05.2006 11:11

Re: Mit PHP ein Bild aus der Datenbank schreiben
 
Zitat:

Original geschrieben von cssFreak
Wie mach ich das....ich habs schon mit einem einfachen
echo"
".$row['bild']."
";

dann hab ich noch versucht das bild in eine Variable zu schreiben und es dann auszugeben...das funktioniert aber alles ned....gibts da vieleicht eine andere Möglichkeit???

Z.B.

Code:

echo "
<img src=\""image.php?id=".$row['id']."\" alt=\"\">
";

Und das entsprechende Image Script gibt das Bild z.B. so aus:

Code:

header("content-length: $groesse");
header("content-type: $mime");
header("content-disposition: attachment; filename=$dateiname");
echo $bild;


pong 11.05.2006 16:55

Zitat:

Hab ein kleines CMS geschrieben mit dem ich ein Bild in eine MySQL Datenbank schreibe....
Der Tod einer jeden DB... seit wann speichert man dort Binary Daten ab, wenn es sich vermeiden lässt *aufdenKopfgreif*

pong

Philipp 11.05.2006 18:27

So "schwachsinnig" ist es auch wieder nicht. Vor allem in Zusammenhang mit den Cachingfunktionen von MySQL 4/5 gibt es durchaus auch Vorteile.

vBulletin speichert übrigens auch Avatare und Attachments als Binary in der Datenbank ;)

Biri 11.05.2006 22:19

hi,

dem möchte ich auch noch hinzufügen: generell kann man nicht sagen, das es schlecht ist, ein bild in einem binary feld der DB zu speichern - kommt halt (wie so oft) auf den anwendungsfall an.

vorteil: mit sicherung der DB werden alle Daten gesichert, also auch die Bilder.

Was man sich aber überlegen sollte: Eine eigenen Tabelle, welche als Spalten den Primary Key und das BLOB Feld hat, sonst nix. Von einer anderen Tabelle, in der die restlichen Daten stehen, wird auf diese "Bildertabelle" verwiesen. Dadurch werden Operationen an Daten, die das Bild nicht betreffen nicht durch den Datenoverhead gebremst.

fg
hannes

cssFreak 12.05.2006 11:19

ja an diese methode hab ich auch schon gedacht!!!

wäre natürlich besser für die Performance!!!

Aber das sind dinge die ich später noch ändern kann!!!

Wichtig wäre mir das ich das bild anzeigen kann...und das funktioniert nicht so wirklich...hab es auch jetzt schon mit der möglichkeit von Phillip versucht...das läuft aber auch nicht so ganz!!! (zumindest schaff ich es nicht :( )

Vieleicht gibt es ja noch eine andere lösung!!!

MFG
cssFreak

Philipp 12.05.2006 12:06

Mir fällt gerade auf das BLOB unter MySQL nur eine Länge von 64kb erlaubt. Ich würde daher auf MEDIUMBLOB (16MB) umstellen.

Falls es weiterhin nicht funktioniert, wäre es gut das entsprechende Upload bzw. Image Script zu posten

Biri 12.05.2006 12:11

[offtopic]
Es ist nicht unbedingt nötig, jeden Satz mit einem dreifachen Satzzeichen abzuschließen!!!
Das schaut irgendwie komisch aus, findest du nicht???
[/offtopic]

ev. hilft dir auch: http://www.experts-exchange.com/Web/..._21727878.html

fg
hannes

cruxx 01.06.2006 20:59

hm.. ich hab grad ne mysql datenbank eingerichtet.. kann nur blobs (mediumblobs) unter 99k raufladen???
was ist da das problem???


Alle Zeitangaben in WEZ +2. Es ist jetzt 06:32 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag