Wie kann ich ein Bild [.jpg] auslesen
und dann in eine mysql DB packen und
wenn ich es dann ansehen will da raushohlen ?
Also ich hab mir dsa so vorgestellt:
$fp = fopen("im.jpg", "r");
while(!feof($fp)) {
$data = fgets($fp, "16256");
}
Da gibt er mir dann aber als Ergibniss
nur einen viereckigen Kasten aus :-/
Brauche ich eine bestimmt Library um ein Bild einzulesen ?
Welches DB-Tabellenformat soltle ich am besten wählen ?
Danke im Vorraus :)
Original geschrieben von newhx
Brauche ich eine bestimmt Library um ein Bild einzulesen ?nein
Welches DB-Tabellenformat soltle ich am besten wählen ?LONGBLOB
Wie kann ich ein Bild [.jpg] auslesen
und dann in eine mysql DB packen
$datei = 'bild.jpg';
// Array für Mime-Typen:
$types = array ('', // Dummy
'image/gif', 'image/jpeg', 'image/png', // Bilder
'application/x-shockwave-flash' // Shockwave/Flash
);
// Maße und Typ ermitteln
$size = getimagesize (http://www.php3.de/manual/de/function.getimagesize.php)($datei);
if (!$size) die ('Fehler beim Ermitteln des Bildtyps');
if (!$size(2)) die ('ungültiger Bilddtyp');
// Bilddaten lesen
$data = '';
$f = fopen($datei, 'rb');
while ($s=fgets($f, 1024)) $data .= $s;
// in DB schreiben
mysql_query ("insert into BILDER (MIME,WIDTH,HEIGHT,DATA)
values ('". $types[$size[2]. "', $size[0], $size[1],
'". mysql_escape_string (http://www.php3.de/manual/de/function.mysql-escape-string.php)($data)."')");
und wenn ich es dann ansehen will da raushohlen ?
// Daten aus DB holen
$q = mysql_query("select * from BILDER where ID=$id");
$x = mysql_fetch_array($q);
// Mime-Typ an Browser senden
header (http://www.php3.de/manual/de/function.header)("content-type: $x[MIME]");
// Bilddaten ausgeben
echo $x[DATA];
HI,
habe das script von Titus mal ausprobiert.
In die Datenbank rein ist kein problem, aber raus.
Bei der Ausgabe,
auf das Array kann ich zugreifen, zumindest auf die WIDTH-HEIGHT und MIME. -passt auch.
Auch alles die richtigen Datentypen: BILD - LONGBOLB alles andere CHAR(50).
Nur zeigt er kein Bild an nur den kleine kasten mit rotem Kreuz.
Kann es an Einstellung liegen ? WinXP - Apache Server.
Gruß Tago