Die Speicherung und Darstellung der Bilder aus MySQL mit PHP
Wie kann ich das speichern einer image-Datei in MySQL mit PHP, senden Sie das Bild von einem HTML-Formular? Ich kenne nur MySQL und HTML Teil von dem Zeug.
Hier ist das HTML-Formular:
<form method="post" enctype="multipart/form-data" action="insert_image.php">
<input type="file" name="image" />
<input type="submit" />
</form>
Ich weiß, wie ich die Verbindung zur Datenbank und speichern Sie normale Informationen, aber wie kann ich parse die Daten korrekt zu speichern die image-Datei auf einem MySQL BLOB-Feld? Und auch wie kann ich ihn anzeigen aus MySQL?
ps: Im mit PDO zu tun, die Datenbank-verbindungen.
Es ist meist einfacher, speichern Sie die Datei im Dateisystem und einfach speichern, den Pfad in der DB.
Sie haben eine überzeugende Verwendung für tatsächlich speichern Sie das Bild in die Datenbank? Wahrscheinlich 99/100 Zeiten ist es besser, um die Bilder zu speichern im Dateisystem.
Bran ja ich weiß, Leistung ist nicht ein Problem überhaupt und ich werde Sie nicht haben, um code zu schreiben, zu organisieren Dateien und Ordner, da die Datenbank bereits und es ist Beziehung und so.
Performance ist immer ein Problem. Denke darüber nach, wenn Sie gezwungen sind, überarbeiten Sie Ihren ursprünglichen Entwurf wieder zum speichern in das Dateisystem wieder... 🙂
Das klingt nicht überzeugend für mich, es klingt faul. Sie hassen diese Entscheidung, sobald Ihre Datenbank eine bestimmte Größe erreicht, und Sie müssen zum erstellen von Datenbank-backups. Es bedeutet auch Sie werden wahrscheinlich nicht in der Lage sind, irgendeine form von caching, um Ihren browser zu zwingen Datenbank nennt man alles, was ein Benutzer versucht, ein Bild anzuzeigen. Zu mir, es sei denn, Sie tun etwas, wie binäre Suche auf den Bild-Inhalt, Sie würde immer besser mit Datei-Referenzen in der Datenbank.
Sie haben eine überzeugende Verwendung für tatsächlich speichern Sie das Bild in die Datenbank? Wahrscheinlich 99/100 Zeiten ist es besser, um die Bilder zu speichern im Dateisystem.
Bran ja ich weiß, Leistung ist nicht ein Problem überhaupt und ich werde Sie nicht haben, um code zu schreiben, zu organisieren Dateien und Ordner, da die Datenbank bereits und es ist Beziehung und so.
Performance ist immer ein Problem. Denke darüber nach, wenn Sie gezwungen sind, überarbeiten Sie Ihren ursprünglichen Entwurf wieder zum speichern in das Dateisystem wieder... 🙂
Das klingt nicht überzeugend für mich, es klingt faul. Sie hassen diese Entscheidung, sobald Ihre Datenbank eine bestimmte Größe erreicht, und Sie müssen zum erstellen von Datenbank-backups. Es bedeutet auch Sie werden wahrscheinlich nicht in der Lage sind, irgendeine form von caching, um Ihren browser zu zwingen Datenbank nennt man alles, was ein Benutzer versucht, ein Bild anzuzeigen. Zu mir, es sei denn, Sie tun etwas, wie binäre Suche auf den Bild-Inhalt, Sie würde immer besser mit Datei-Referenzen in der Datenbank.
InformationsquelleAutor user937450 | 2013-03-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Mein Skript nicht berücksichtigt, für Bilder mit dem gleichen Namen, können Sie die swap-Teil, wo es heißt $_FILES['Bild']['name'], um eine andere variable, der/erstellt einen eindeutigen Namen für ihn, oder verwenden Sie die eingefügte ID (PRIMARY AUTO_INCREMENT MySQL-Taste).
Hier ist ein Beispiel-schema für die Tabelle:
Dieses Beispiel ist nicht unbedingt das einfachste das zu erreichen, was ich wollte zu tun, aber es hat alles, was ich brauchte, um zu verwenden.
ich doch noch die Dinge für die der Einfachheit halber 🙁 stellen Sie sicher, dass Sie überprüfen, dass die Abfragen erfolgreich ausgeführt, und ich würde es aufteilen in zwei Dateien. für die meisten Teil, dies sollte ziemlich sicher sein. lassen Sie mich wissen, wenn Sie weitere Erklärung, froh, Sie könnten es herausfinden!
Ja, es ist sicher. Ich habe die Datei hochgeladen und erscheint dann ist es richtig. Danke.
InformationsquelleAutor zamnuts
Seine dasselbe für alles, was Sie speichern in die Datenbank: nehmen Sie die bytes, die Sie wollen, zu speichern und zu entkommen Sie, wenn Sie Sie hinzufügen, um die Abfrage-string.
Das ist wie:
Und bitte sparen Sie es in das lokale Dateisystem, denn das ist einfacher. Die Datei system ist eine spezialisierte Datenbank für die Speicherung großer binärer blobs. Der Weg ist die eindeutige ID für den Zugriff.
In diesem Beispiel muss nicht viel sagen zu mir, kannst du den Teil, wo Sie rufen Sie die Datei aus dem Formular?
$image_file_name = $_FILES['image']['tmp_name'];
InformationsquelleAutor Sven
Wirklich die besten Praktiken sagt, als Sie brauchen, und speichern das Bild in einem Ordner und speichern Sie den Pfad oder den Namen in der Datenbank.
dies könnte Ihnen helfen:
http://www.htmlgoodies.com/beyond/php/article.php/3877766/Web-Developer-How-To-Upload-Images-Using-PHP.htm
Speichern Bild aus URL PHP
Ich bin kein Profi-Programmierer, was wäre ne der beste Weg, um eine einzigartige ID für mehrere Dateien?
Jedes pro-Programmierer ist, dass Sie mit dem Dateisystem. 🙂 Der Pfad und Dateiname die eindeutige id für eine Datei. Wie würden Sie das speichern mehrerer Bilder in Ihrer Datenbank? Ein multi-Bild-Tabelle wie z.B. "ID, header-Bild, footer-Bild-Inhalt-Bild"?
Statt den Pfad der Datei, wird nur die Datei selbst, mit Beziehungen, die ich speichern kann, mehrere Dateien für ein einzelnes Unternehmen zum Beispiel.
InformationsquelleAutor Superlandero
Können Sie tatsächlich Holen Sie sich die rohen Inhalt der hochgeladenen Bild-Datei mit
file_get_contents
, entkommen, und speichern Sie es dann in der DB als blob. Um es anzuzeigen, können Sie eigentlich nur das echo des blob-nach der Einstellung der entsprechenden content-type.Allerdings würde ich es nicht tun, die Art und Weise. Stattdessen würde ich das Bild speichern auf der Festplatte und speichern Sie den Speicherort der image-Datei in MySQL.
InformationsquelleAutor Explosion Pills
Persönlich, wenn ich einen Ort brauchte, so etwas wie dieses ( diese Website ), die ich gespeichert werden die Dateien im Dateisystem Hinzugefügt und das Verzeichnis der Datenbank, sicherstellen, dass jede jpg hatte einen eindeutigen Dateinamen.
InformationsquelleAutor James