Frage von TheLeon111, 37

Warum funktioniert das Anzeigen von Bildern mit PHP nicht?

Guten Tag,

ich möchte eine Webseite erstellen, mit welcher man unter anderem Bilder einfügen kann bzw. sie wieder Anzeigen lassen kann. Ich habe dies zuvor mit base64 gemacht, bin nun aber umgestiegen. Das wäre mein Code:

http://pastebin.com/EaTMun01

Das sollte doch soweit funktionieren, oder?

PS: In der Datenbank werden die Bilder als .bin Datei gespeichert.

Liebe Grüße

Antwort
von maximilianus7, 17

vorneweg: die bilddateinen getrennt von der DB ins filesystem zu speichern, wie vorgeschlagen, halte ich auch für den besseren weg.

aber zu deiner frage:

da du die "native" SQL-syntax benutzt dürfte das in der regel nicht funktionieren: du umschliesst eine bit-folge ($imgfp) mit ' da es sich um einen string handelt. aber diese könnte selbst eine sequenz x'27' = B'00100111' = ' enthalten, die SQL als stringbegrenzer interpretiert. bei der 64-kodierung passiert das nicht.
wahrscheinlich bekommst du eine fehlermeldung, wenn du das ergebnis der  sql-statements prüfst - einfach ein
or die(mysqli_error())
hinter dem insert einfügen.

wenn du solche binären daten (meintest du das mit .bin-datei?) einspeichern willst, müssest du mit mysqli_prepare, mysqli_stmt_bind_param, mysqli_stmt_execute, etc arbeiten.

Kommentar von TheLeon111 ,

Danke für die Antwort! Worin würde denn der Vorteil liegen, wenn ich es nicht in der Datenbank speichere? Und wie mache ich es am besten ohne DB?

Kommentar von maximilianus7 ,

Das ist im Grunde genommen eine Geschmacksfrage. ein echter technischer Vorteil für die Auslagerung ist, dass du mit FTP an die Bilder ran kommst

Von der einfacheren Programmierung mal abgesehen

Kommentar von TheLeon111 ,

Dann werde ich es wohl umlagern. Danke!

Antwort
von yerooke, 25

Wieso speicherst Du die Bilder in die Datenbank? Hat das einen besonderen Grund?

Normalerweise wird nur der Name des Bildes als Text gespeichert und nachher beim auslesen nur auf das richtige Bild referenziert.

Kommentar von TheLeon111 ,

Ja, da ich bei meinem Webspace lediglich MySQL zur Verfügung habe als Speichermedium, soweit ich weiß. Wäre es besser, wenn ich es einfach in einen Ordner speichere?

Kommentar von yerooke ,

Absolut korrekt! Die Bilder in einen Unterordner ablegen, einen Zufallsnamen generieren und diesen Namen in die Datenbank ablegen.

Beim Anzeigen der Bilder, logischerweise den Namen auslesen, den korrekten Pfad zum Bilderordner und Bildnamen referenzieren.

Du wirst doch sicherlich einiges an Webspeicherplatz haben :)

Kommentar von TheLeon111 ,

Okay, danke! :D

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten