Wie zum Hochladen eines Bildes zu PHP mit MySQL-Insert

September 26

Wie zum Hochladen eines Bildes zu PHP mit MySQL-Insert

PHP-Skripte sind oft gepaart mit einer MySQL-Datenbank, um Inhalte auf einer Website zu generieren. Im Falle einer Fotogalerie Bilder selbst befinden sich in einem Ordner auf einem Server und die Foto-Informationen, vielleicht das Foto-Dateinamen, eine Beschriftung und ein Foto-ID-Nummer, in der MySQL-Datenbank gespeichert ist. Ein Foto hochladen erfordert platzieren das Foto in den richtigen Ordner und erstellen eine SQL-"Einfügen"-Abfrage um die Bildinformationen in der Datenbank zu platzieren. Verwenden Sie PHP-Skript, um beide diese Bewegungen ausführen.

Anweisungen

1 Erstellen Sie ein Formular, in dem Körper eines HTML-Dokuments, die eine Datei hochladen und Benutzereingaben für etliche "Beschriftung" und "Photo_id" akzeptieren können. Geben Sie der Schaltfläche "Absenden" das Name-Attribut "hochladen." Wenn der Benutzer das Formular klickt, wird eine Superglobale $_POST-Array erstellt, die Name-Attribute des Formulars enthält.

< bilden Aktion = "" Methode = "post" Enctype = "Multipart/Form-Data" Name = "UploadImage" Id = "UploadImage" >

< p >

< Bezeichnung for = "Bild" > Foto hochladen: < / label >

< Eingang Typ = "Dateiname" = "Bild" Id = "image" / >

</p >

< p >

< Bezeichnung for = "Textfield" > Caption: < / label >< Textarea Name = "Beschriftung" Spalten = "40" Zeilen = "4" Id = "Beschriftung" Maxlength = "200" Onkeyup = "return ismaxlength(this)" >< / Textarea >< / p >

< / label >

</p >

< p >

< for = "Photo_id" > Bild Aufkleberbestellung: < / label >

< input Name = "Photo_id" Type = "Text" Id = "Photo_id" / >

</p >

< p >

< Eingang Typ = "submit" Name = "upload" Id = "upload" Wert = "Upload" / >

</p >

< / form >

2 Beginnen Sie Ihre PHP-Code an der Spitze Ihres HTML-Dokuments und testen Sie das Vorhandensein des Elements "Upload" im $_POST-Array. Seine Existenz lösen Ihrer PHP-Code ausführen.

<? Php

Wenn (array_key_exists('upload',$_POST)) {}

3 Erstellen Sie eine Verbindung zu Ihrem MySQL-Server und eine Datenbank namens "Sample." Verwenden Sie Ihre eigenen Datenbank-Benutzernamen und Kennwort an die Stelle der "Benutzername" und "Kennwort".

$conn = neue mysqli('localhost','username','password','sample') oder sterben ("Error");

4 Erstellen Sie eine Tabelle namens "Gallery" innerhalb der "Beispieldatenbank" und setzen Sie ihn mit drei Spalten mit der Bezeichnung "Dateiname", "Beschriftung" und "Photo_id."

$query = "CREATE TABLE-Anweisungen, wenn nicht EXISTS Galerie

(

Dateiname varchar(30) nicht NULL,

Beschriftung Varchar (500) nicht NULL,

Photo_id Int (3) nicht NULL

)";

$result = mysqli_query($conn,$query);

5 Hinzufügen von PHP-Code definieren ein Uploadverzeichnis namens "Bilder." Erstellen Sie einen Ordner namens "Bilder" an der gleichen Stelle, wo Sie Ihr Dokument speichern. Ändern Sie die Berechtigungen auf den Ordner lesen und schreiben. Klicken Sie in Windows mit der rechten Maustaste des Ordners, und wählen Sie die Registerkarte "Sicherheit" und setzen Sie ein Häkchen neben "Lesen" und "Schreiben". Drücken Sie auf einem Mac "Command" und "I" und Blättern Sie zu "Besitz und Berechtigungen" unter "Details." Ändern Sie die Einstellung für "Andere" zu "Lesen/schreiben." Der PHP-Code ist:

define ('UPLOAD_DIR', ' Bilder /');

6 Fügen Sie PHP-Code, um das Foto verschieben und den Dateinamen der Variablen $file zuzuweisen.

move_uploaded_file($_FILES['image']['tmp_name'],UPLOAD_DIR.$_FILES['image']['Name']);

$file = $_FILES ['Bild'] ['Name'];

7 Fügen Sie Ihre MySQL "Insert" Abfrage, um die Foto-Informationen in die Datenbank eintragen. Legen Sie eine Variable namens $OK auf true, wenn die "Insert" Abfrage erfolgreich ist.

$sql3 = "INSERT INTO Galerie (Filename, Beschriftung, Photo_id) VALUES ('$file',?,?)";

$stmt = $conn -> stmt_init();

Wenn ($stmt -> prepare($sql3)) {}

$stmt->bind_param('ss', $_POST['caption'], $_POST['photo_id']);

$OK = $stmt->execute();8

Fügen Sie eine Meldung anzeigen, um Erfolg anzuzeigen, wenn die Variable $OK festgelegt ist auf true fest. Andernfalls wird eine Fehlermeldung angezeigt. Schließen Sie Ihre PHP-Programmierung:

Wenn ($OK) {}

Echo ("Du bist Foto wurde erfolgreich hochgeladen"); }

Else {}

echo $response = $stmt->error;

}

}

?>9

Speichern Sie die Seite mit einer Endung PHP-Server oder einen PHP-Code-Emulator on-line. Sie sollten eine vertraute Hochlade-Formular sehen. Wählen Sie ein kleines Foto auf Ihrem Desktop, eine Beispiel-Beschriftung hinzufügen und Foto-ID-Nummer und drücken Sie "Absenden". Sie sollten eine Meldung oben auf der Seite im Browser erhalten, dass Ihr Foto erfolgreich hochgeladen wurde. Überprüfen Sie Ihre Datenbank eine neue Tabelle namens "Galerie" mit den Informationen, die, den Sie im Formular übermittelt. Der vollständige Code sieht wie folgt aus:

<? Php

Wenn (array_key_exists('upload',$_POST)) {}

$conn = neue mysqli('localhost','username','password','sample') oder sterben ("Error");

$query = "CREATE TABLE-Anweisungen, wenn nicht EXISTS Galerie

(

Dateiname varchar(30) nicht NULL,

Beschriftung Varchar (500) nicht NULL,

Photo_id Int (3) nicht NULL

)";

$result = mysqli_query($conn,$query);

define ('UPLOAD_DIR', ' Bilder /');

move_uploaded_file($_FILES['image']['tmp_name'],UPLOAD_DIR.$_FILES['image']['Name']);

$file = $_FILES ['Bild'] ['Name'];

$sql3 = "INSERT INTO Galerie (Filename, Beschriftung, Photo_id) VALUES ('$file',?,?)";

$stmt = $conn -> stmt_init();

Wenn ($stmt -> prepare($sql3)) {}

$stmt->bind_param('ss', $_POST['caption'], $_POST['photo_id']);

$OK = $stmt->execute();

}

Wenn ($OK) {}

Echo ("Du bist Foto wurde erfolgreich hochgeladen"); }

Else {}

Echo $response = $stmt -> Fehler;

}

}

? >

<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional / / EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >

< html ">

< Head >

< / head >

< Körper >

< bilden Aktion = "" Methode = "post" Enctype = "Multipart/Form-Data" Name = "UploadImage" Id = "UploadImage" >

< p >

< Bezeichnung for = "Bild" > Foto hochladen: < / label >

< Eingang Typ = "Dateiname" = "Bild" Id = "image" / >

</p >

< p >

< Bezeichnung for = "Textfield" > Caption: < / label >< Textarea Name = "Beschriftung" Spalten = "40" Zeilen = "4" Id = "Beschriftung" Maxlength = "200" Onkeyup = "return ismaxlength(this)" >< / Textarea >< / p >

< / label >

</p >

< p >

< for = "Photo_id" > Bild Aufkleberbestellung: < / label >

< input Name = "Photo_id" Type = "Text" Id = "Photo_id" / >

</p >

< p >

< Eingang Typ = "submit" Name = "upload" Id = "upload" Wert = "Upload" / >

</p >

< / form >

< / body >

< / html >