Bildatein in MySQL Datenbank speichern

mcphilli

Erfahrenes Mitglied
hallo,
ich bin gerade dabei ein newsscript zu schreiben und mpchte bilder mit einbinden. ein nötiges uploadscript habe ich bereits geschrieben, nun meine frage kann man bilderdatein in einer datenbank speichern oder muss man die bilder in einen ordenr speichern und den pfad in der datenbank speichern? wenn man datein in der datenbank speichern kann, welchen typ muss der spalte zugewiesen werden?

mfg
mcphilli
 
soweit ich weiss, kann man keine bilddateien direkt in der datenbank speichern (kann aber auch sein, dass ich da falsch liege). ich an deiner stelle würde einfach den dateinamen der bilddatei speichern und in der html-ausgabe in das entsprechende tag mit einbauen.
 
doch, man kann Bilddateien auch in einer Datenbank speichern. Der Spaltentyp muss dann glaub ich BLOB sein.

Sicher bin ich mir da leider auch nicht, weil noch nie gemacht.

Die Variante "in Ordner speichern und Link in DB" ist auf alle Fälle einfacher. ;)


Dunsti
 
geht, aber ist nicht empfehlenswert

Ja, Du kannst Sie in der DB speichern. Das ist aber nicht besonders sinnvoll,
da es mit dem normalen Filesystem leichter geht (und schneller ist, da MySQL nicht auf sowas optimiert ist).
Mach´s doch folgendermaßen:

1. Im Eingabeformular:
<form enctype="multipart/form-data" action="news.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="60000">
<input name="bild" type="file">
(Anm.: MAX_FILE_SIZE sind Bytes)

2. Nach dem Absenden (Antwortscript):
- Per INSERT erstmal den restlichen Kram in die DB.
- $Nr = mysql_isert_id() (ich hoffe, Du hast einen auto-incrementen Primärindex, sollte eigentlich nie fehlen)
- $bild ist der Link auf die Upload- Tempdatei, wurde vom Server automatisch definiert, also:
if (is_readable($bild)) {
rename ($bild, "bilder/$Nr.jpg");
}

3. Auf der Newsseite an sich:
Du fragst ja die News per SELECT ab -
also nimm das Feld Nr auch mit in die SELECT- Query und setz in den HTML- Code des Newsabschnitts dann etwa:
<?php echo "<img src=\"bilder/$Nr.jpg\">"; ?>
ein.


Ist viel einfacher als es aussieht, probier´s mal!


Viel Glück & schöne Grüße
Kihmski
 
alles viel zu umstaendlich.. warum speicherst Du nicht eifach den Pfad zum image in der db ab? ..somit kannste immer beruhigt sein, das alles imagelinks funktionieren.. und es bleibt alles wesentlich performanter.

aber such mal ich hatte vor ein paar monaten mal ein script hier gepostet, womit man images direkt in der db speichert.
 
Zurück