IMG files in Datenbank Schreiben und Auslesen

liquidbeats

Erfahrenes Mitglied
Nabend ...
Nachdem ich jetzt im geGooglet habe und hier im Forum die suchfunktion gequält habe bleibt mir nix anderes Übrig als hier nachzufragen, da meine funde irgend wie nicht das Richtige waren.

Es geht darum das ich images Files wie gif jpg png etc. mittels PHP in eine MYSQL Datenbank eintragen möchte, und auch dementsprechend wieder Rausholen.

kann mir da jemand helfen wo ich ein Gutes Tutorial diesbezüglich finde?



Danke
Gruß Andy
 
Hi,

könntest du deine Frage nochmal etwas deutlicher formulieren? Ich weiss nicht, was du vor hast. Wäre nett, wenn du diesbezüglich etwas genauere Informationen herausgeben würdest. Danke

Mfg Shorty
 
hmm
Ok ich versuchs mal.

ich weiss ja nicht wie das geht und was dazu alles Benötigt wird, sonst hätt ich ja was gefunden im netz.

Ich möchte eine Bild Datei Beispiel sommer.jpg in Die datenbank eintragem.
Sowohl den Namen der datei (sommer.jpg) als auch die Datei an sich soll in der Datenbank verschwinden mittels Upload


<input name="file" type="file">


Die dann in der Datenbank existieren Datei möchte ich dann auch wie ein Normales bild wieder am Monitor angezeigt bekommen.

Wie gesagt weiss ich nicht im geringsten wie das Funktioniert, und dementsprechend auch nicht ob bei der Abfrage die einfache Abfrage

"SELECT file FROM tabelle WHERE filename = 'sommer.jpg'"
~~

echo "<img src="$file" border="0">";

Ausreicht oder ich Davor, innerhalb der Abfrage oder Danach noch was Bestimmtes eingefügt werden muss.


Wie man die Datei wiederum löscht ist klar :p aber der Rest halt nicht.

Würde mich bei Hilfe echt Freuen.

Gruß Andy
 
mal ganz davon abgesehen, das ich von dieser Art der Bildarchivierung abrate, möchte ich dir mal einen Lösungsvorschlag unterbreiten:

1. ) Die Grafikdatei einlesen (Möglichst binär)
PHP:
$bilddatei = "beispiel.jpg";
$rohdaten = '';
$bild_kodiert = '';

//zunächst Filehandle
$fp = fopen($bilddatei, "r"); //r = Lesezugriff

//Nun das File einlesen
$rohdaten = fread($fp,filesize($bilddatei));

//Filehandle schließen
fclose($fp);
2. ) Nun haben wir die Grafikdatei in der Variable rohdaten und können diese weiterverarbeiten
PHP:
//kodieren der "rohdaten"
// => kann in dieser Form bspw. als Mailanhang versendet werden
$bild_kodiert = base64_encode($rohdaten);
3. )Diesen String kannst du dir nun in die vorgesehene Tabelle einfügen (achte bitte auf die Dimensionierung des betreffenden Feldes!) und natürlich jederzeit auslesen. Nützlich wäre es an dieser Stelle zusätzlich noch den ContentType des Bildes mit in der DB abzulegen:
jpg -> image/jpeg
gif -> image/gif
png -> image/png
u.s.w.

4. ) Auslesen und darstellen des Bildes
PHP:
//das Auslesen wirst du sicherlich hinbekommen :)
//es liegen nun folgende Daten vor: bild_kodiert und ContentType
header("Content-Type: ".$content_type);
echo base64_decode($bild_kodiert);

Die Performance dieser variante nicht sonderlich gut ;).

Bloddy Newbie
 
Danke dir.
Ich habe ein Vbulletin Board wie dieses hier auch eines ist.
Das Board ist zu 99% Datenbank Basierend und auch die Anhänge der user wie auch deren Avatar bilder werden in der Datenbank abgelegt.
Da ich mir einige Hacks etc. für das Board selbst gebaut habe und auch deren stil beibehalten möchte sprich Datenbank Basierend ( sonst hätt ich ein andere Board nehmen können) ist es halt Notwendig diese dort abzulegen, allein schon weil mich Intressiert wie das geht ;)

Aus dem was ich da eben von dir Bekommen habe werde ich nicht so ganz schlau
allein dies base64_decode($bild_kodiert); ist mir Rätsel haft.
Owei owei :eek:
 
Zurück