Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Laden Sie das Bild in die MYSQL-Datenbank hoch und zeigen Sie es mit PHP mit Swift an

Das Bild vom Benutzer erhalten

Siehe http://php.net/manual/en/reserved.variables. files.php und http://php.net/manual/en/features.file- upload.php und Freunde für die Daten zur Verwendung von $_FILES um das hochgeladene zu erhalten.

Sobald Sie das Bild in einer Variablen haben, sagen Sie $jpg , verwenden Sie keine Funktionen zum Kodieren/Dekodieren von Text; es wird nur Dinge zerfleischen. Die verschiedenen Ansätze unten sagen, was zu tun ist, um das Stolpern über 8-Bit-Codes zu vermeiden.

Es gibt drei Möglichkeiten, das Bild zu präsentieren, jede davon ist etwas komplex

Speichern des Bildes in der Datenbank; Bild inline anzeigen

Ich habe diesen Ansatz für Thumbnails verwendet, aber nicht für große Bilder empfohlen.

Speichern Sie es in einem MEDIUMBLOB Verwenden Sie in einer Tabelle bin2hex() in PHP, um das Bild in einen String umzuwandeln. Verwenden Sie dann INSERT ... VALUES (UNHEX('...')) um auf der Seite des MySQL-Servers wieder auf binär umzuschalten.

Lassen Sie nach dem Neuladen das referenzierende PHP so etwas wie

sagen
$b64 = base64_encode($blob);
echo "<img src='data:image/jpeg;base64,$b64'/>";

Speichern des Bildes in der Datenbank; PHP-Skript zum Generieren von Bildern

Ich verwende dies, wenn ich die "image*"-Funktionen von PHP verwenden möchte, um das Bild zu ändern, bevor es angezeigt wird. Da dies komplizierter ist, als Sie wahrscheinlich brauchen, werde ich nur überfliegen, was getan werden muss.

Der HTML-Code für die Seite würde ein anderes Skript aufrufen, mit allen Argumenten, die Sie benötigen:

<img src=modify.php?this=stuff&that=stuff>

Dann in modify.php , beginnen Sie mit

header('Content-type: image/jpeg');

Und enden Sie damit (vorausgesetzt, Sie erstellen ein JPEG):

imagejpeg($im);

Speichern des Bildes in einer Datei

Dies ist die bevorzugte Methode, die die meisten großen Websites die meiste Zeit verwenden.

Wenn Ihre Datei aus einem Upload stammt, verschiebt sie so etwas in einen besseren Pfad, ohne dass Sie das JPG berühren müssen.

$tmpfile = $_FILES['userfile']['tmp_name'];
move_uploaded_file($tmpfile, $uploadfile);

Weitere Informationen und Beispiele:http://php.net/manual/ de/function.move-uploaded-file.php

Generieren Sie im HTML einfach so etwas:

<img src=path/to/file>

Recherchieren Sie, wo im Pfad Ihres Servers Sie Bilder ablegen können, und stellen Sie sicher, dass die Berechtigungen angemessen sind.

Hinweis:Die Datenbank ist nicht am Speichern des Bildes beteiligt, stattdessen hat sie eine Spalte zum Speichern der URL "path/to/file" :

image VARCHAR(255) NOT NULL

Zur weiteren Diskussion

  • Welche der 3 Techniken möchten Sie näher vertiefen?
  • Sehen wir uns den HTML-Code an, den Sie generieren.
  • Schauen wir uns SHOW CREATE TABLE an .