Wie lade ich mit PHP8 ein Bild hoch und speichere den Dateinamen in MySQL?

Antwort

Um mit PHP8 ein Bild hochzuladen und den Dateinamen in einer MySQL-Datenbank zu speichern, sind folgende Schritte notwendig: **1. HTML-Formular für den Upload:** ```html <form action="upload.php" method="post" enctype="multipart/form-data"> <input type="file" name="bild" accept="image/*"> <input type="submit" value="Bild hochladen"> </form> ``` **2. PHP-Skript (upload.php):** ```php <?php // Datenbankverbindung herstellen (Beispiel mit MySQLi) $mysqli = new mysqli("localhost", "benutzer", "passwort", "datenbank"); if ($mysqli->connect_error) { die("Verbindung fehlgeschlagen: " . $mysqli->connect_error); } // Prüfen, ob ein Bild hochgeladen wurde if (isset($_FILES['bild']) && $_FILES['bild']['error'] === UPLOAD_ERR_OK) { $uploadDir = 'uploads/'; $originalName = basename($_FILES['bild']['name']); $extension = strtolower(pathinfo($originalName, PATHINFO_EXTENSION)); $allowed = ['jpg', 'jpeg', 'png', 'gif']; // Dateityp prüfen if (in_array($extension, $allowed)) { // Eindeutigen Dateinamen generieren $newName = uniqid('img_', true) . '.' . $extension; $uploadFile = $uploadDir . $newName; // Datei verschieben if (move_uploaded_file($_FILES['bild']['tmp_name'], $uploadFile)) { // Dateinamen in die Datenbank speichern $stmt = $mysqli->prepare("INSERT INTO bilder (dateiname) VALUES (?)"); $stmt->bind_param("s", $newName); $stmt->execute(); $stmt->close(); echo "Bild erfolgreich hochgeladen und gespeichert."; } else { echo "Fehler beim Hochladen der Datei."; } } else { echo "Nur JPG, JPEG, PNG und GIF sind erlaubt."; } } else { echo "Keine Datei hochgeladen oder Fehler beim Upload."; } ?> ``` **3. Datenbanktabelle (Beispiel):** ```sql CREATE TABLE bilder ( id INT AUTO_INCREMENT PRIMARY KEY, dateiname VARCHAR(255) NOT NULL ); ``` **Wichtige Hinweise:** - Der Ordner `uploads/` muss existieren und für den Webserver beschreibbar sein. - Die Dateiendungen sollten immer geprüft werden, um Sicherheit zu gewährleisten. - Für produktive Umgebungen sind zusätzliche Sicherheitsmaßnahmen (z.B. Prüfung auf echte Bilddateien mit `getimagesize()`) und Fehlerbehandlung zu empfehlen. Weitere Informationen findest du in der [PHP-Dokumentation zum Dateiupload](https://www.php.net/manual/de/features.file-upload.php) und zur [MySQLi-Erweiterung](https://www.php.net/manual/de/book.mysqli.php).

KI fragen

Verwandte Fragen

Wie lässt sich eine Datei mit PHP8 auf der Festplatte löschen?

Um mit PHP8 eine Datei auf der Festplatte zu löschen, kannst du die Funktion [`unlink()`](https://www.php.net/manual/de/function.unlink.php) verwenden. Hier ein einfaches Beispiel: ```php $datei... [mehr]

Kann man mit PHP8 Buchstaben inkrementieren?

Ja, in PHP8 kannst du Buchstaben inkrementieren. PHP behandelt Zeichenketten, die aus Buchstaben bestehen, beim Inkrementieren ähnlich wie Zahlen. Das bedeutet, dass du z.B. mit dem Inkrement-Ope... [mehr]

Wie erstelle ich in PHP ein MySQL Prepared Statement mit zwei Bedingungen, wobei eine Bedingung optional alles abdecken kann?

Um in PHP mit MySQL (MySQLi oder PDO) ein Prepared Statement mit zwei Bedingungen zu erstellen, wobei eine Bedingung optional ist (z.B. „alles“ oder ein bestimmter Wert), kannst du das wie... [mehr]

Wie erstellt man Charts mit PHP8 und welche Programme sind am besten geeignet?

Um mit PHP8 Charts zu erstellen, gibt es verschiedene Ansätze und Tools. Hier sind die gängigsten Möglichkeiten: **1. Serverseitige Chart-Erstellung (Bildgenerierung):** Du kannst mit... [mehr]

Wie speichere ich ein Passwort in PHP8 verschlüsselt ab und lese es wieder korrekt aus?

Ein Passwort sollte **niemals** verschlüsselt und im Klartext wieder ausgelesen werden, sondern immer **gehasht** gespeichert werden. Das ist ein wichtiger Sicherheitsgrundsatz! Beim Hashen wir... [mehr]

Wie gebe ich ein Array in PHP8 am Bildschirm aus?

Um einen Array in PHP8 am Bildschirm anzuzeigen, kannst du die Funktionen print_r() oder var_dump() verwenden. Beide geben den Inhalt des Arrays lesbar aus. Beispiel mit print_r(): ```php $array = [... [mehr]

Wie stelle ich mit PHP8 eine ODBC-Verbindung zum SQL-Server mit Windows Authentifizierung her?

Um mit PHP8 eine ODBC-Verbindung zu einem Microsoft SQL Server unter Verwendung der Windows-Authentifizierung (Integrated Security) herzustellen, sind folgende Schritte notwendig: ### Voraussetzungen... [mehr]

Wie erstelle ich in PHP8 ein zweidimensionales Array?

Ein zweidimensionales Array in PHP8 kannst du erstellen, indem du ein Array von Arrays anlegst. Hier ein einfaches Beispiel: ```php $zweidimensional = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ];... [mehr]

Wie wandle ich mit PHP8 Minuten in das Format Std:Min um?

Um eine Minutenanzahl in das Format `Std:Min` (z.B. 125 Minuten → 2:05) umzuwandeln, kannst du in PHP8 folgende Methode verwenden: ```php $minuten = 125; // Beispielwert $stunden = intdiv($minu... [mehr]

Wie blende ich in PHP8 alle Fehlermeldungen aus?

Um in einem PHP8-Script alle Fehlermeldungen auszublenden, kannst du am Anfang deines Scripts folgende Zeilen einfügen: ```php error_reporting(0); ini_set('display_errors', 0); ``` **... [mehr]