2010-11-21 15 views
1

Ich habe ein Formular erstellt, mit dem Benutzer ein Bild in einen Ordner auf dem Server hochladen können. Wie füge ich das Bild in die Datenbank ein? Ich habe einen Tabellennamen mit dem Namen upload in der Datenbank namens blog und eine Zeile namens image mit dem Wert MediumBLOB erstellt.Einfügen von Bildern in eine Datenbank

Wenn das oben genannte unlogisch klingt, wie rufe ich das Bild vom Server dynamisch auf?

Vielen Dank.

+1

Gibt es einen Grund, warum Sie das Bild nicht auf dem Dateisystem belassen und nur den Pfad oder die ID in der Datenbank speichern? – Matthew

+0

@konforce Nein, kein spezifischer Grund. Kannst du erklären, wie ich ID in der DB speichern und dann das Bild später mit der ID aufrufen könnte? Vielen Dank. Definiere ich die ID im img-Tag? Vielen Dank. – brad

+0

(Kleinbuchstabe b), normalerweise mache ich nur ein getimg.php? Id = 234234 Skript, und dann wird das PHP-Skript entweder zum Bild umleiten, den Dateiinhalt zurückgeben wie es ist, oder jede mögliche Beschneidung/Größenanpassung handhaben notwendig (und zwischenspeichern). Egal was, es wird die Image ID in der Datenbank nachschlagen und den Pfad zur eigentlichen Datei auf dem Server finden. – Brad

Antwort

1

Siehe this howto. Sie sollten jedoch in Erwägung ziehen, parametrisierte Abfragen zu verwenden, anstatt die Abfrageargumente inline zu übergeben.

+0

tolle Verbindung. Aber jetzt bin ich ein bisschen verwirrt. Soll ich das komplette Bild in der db ablegen oder ihm eine ID zuweisen und es dann über die ID aufrufen? Danke – brad

+0

Die meisten Datenbankadministratoren empfehlen, große Blobdaten wie Bilder in einer Datenbank nicht zu speichern, da dies den Datenbankserver jedes Mal unnötig belasten wird, wenn Sie ein Bild abrufen müssen. Es gibt zwei Möglichkeiten, dies zu erreichen: Speichern Sie die Dateien in einem Verzeichnis innerhalb des Webroot, damit der Webserver sie hosten oder anderweitig speichern und ein Skript verwenden kann, um sie zu bedienen (zB image.php? Id = xxx'). Wie auch immer, ja, ändern Sie den tatsächlichen Dateinamen in die ID des Bildes in der DB oder finden Sie eine andere Möglichkeit, Datenbankeinträge auf Dateisystemeinträge abzubilden. – cdhowie

+0

@brad: Es ist selten youll jemals wirklich das Bild selbst in der db speichern möchten. Speichern Sie nur den Pfad auf dem Dateisystem. Wenn Sie dann die Anzeige ausführen, wird der Pfad des Dateisystems zum öffentlichen Pfad zum Bild transformiert. – prodigitalson

Verwandte Themen