Mahlzeit,
Meine Tabelle ist vorbereitet (mit ID, und einer Spalte für das Bild, die BLOB sein muss, oder?).
Gute Wahl. :-) Vielleicht wäre noch eine Spalte mit dem Content-Type sinnvoll, könntest Du mal ausprobieren ...
- Problem: Wenn die Datei aus dem Formular übergeben habe, bekomme ich, wenn ich
var_dump($_FILES);
habe, folgende Ausgabe:
array(1) { ["datei"]=> array(5) { ["name"]=> string(16) "test.png" ["type"]=> string(9) "image/png" ["tmp_name"]=> string(22) "\tmp\php82.tmp" ["error"]=> int(0) ["size"]=> int(797736) } }Wie bekomm ich das Bild jetzt als Bild-Ressource?
Indem Du die Datei, deren Namen Du unter $_FILES['datei']['tmp_name']
findest, einfach als Binärdatei öffnest und den Inhalt mit einem INSERT
-Statement in Deine Tabelle schreibst? Oder alternativ den Inhalt dieser Datei direkt in Deine Tabelle schreibst (wenn Dein DBMS entsprechende Funktionen bereitstellt und auch auf das Dateisystem zugreifen darf)?
Wenn ich das Bild irgendwann einmal anzeigen lassen will, will ich dass nach der Abfrage eine PHP-Bildressource des Bildes erstellt wird. Wie geht das?
Sinnvollerweise baust Du Dir eine "blob2img.php" o.ä., der Du z.B. als Parameter die ID des Bildes übergibst, die dann das entsprechende Bild aus der Tabelle ausliest, den eigenen Content-Type entsprechend setzt und an den Browser die Binärdaten des Bildes zurückgibt.
Dann könntest Du Deine Bilder folgendermaßen im HTML ansprechen:
<img src="/foo/bar/blob2img.php?ID=4711" alt="wunderprächtiges Bild">
MfG,
EKKi
sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|