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).

Neue Frage stellen

Verwandte Fragen

Wie ermittele ich mit PHP8 und PDO die Anzahl der gefundenen Datensätze in einer MySQL-Datenbank?

Um mit PHP8 und PDO die Anzahl der gefundenen Datensätze in einer MySQL-Datenbank zu ermitteln, gibt es mehrere Möglichkeiten. Die gebräuchlichsten sind: ### 1. Mit `SELECT COUNT(*)` A... [mehr]

Wie speichere ich mit PHP8 das Datum 21.01.26 in einer MySQL DATE-Spalte?

Um das Datum **21.01.26** (vermutlich im Format **JJ.MM.TT**) in eine MySQL-Datenbank in eine Spalte vom Typ `DATE` zu speichern, musst du das Datum zuerst in das MySQL-Format **YYYY-MM-DD** umwandeln... [mehr]

Wie prüfe ich in PHP8, ob ein Datenbankwert nur aus Zahlen und Punkt besteht?

Ja, das kannst du mit PHP 8 herausfinden. Du kannst dazu reguläre Ausdrücke (Regular Expressions) verwenden. Mit der Funktion `preg_match()` prüfst du, ob ein String nur aus Ziffern und... [mehr]

Kann man mit PHP8 prüfen, ob der Wert einer Datenbankspalte vom Typ float ist?

Mit PHP8 kannst du nicht direkt aus PHP heraus feststellen, ob der Wert einer Datenbankspalte vom Typ `float` ist, da PHP beim Abrufen von Daten aus einer Datenbank (z.B. mit PDO oder MySQLi) die Typi... [mehr]

Wie kann ich mit PHP8 den lokalen Pfad einer mit input type="file" hochgeladenen Datei auslesen?

Aus Sicherheitsgründen überträgt der Browser beim Hochladen einer Datei mit `<input type="file">` **niemals** den vollständigen lokalen Pfad der Datei an den Server... [mehr]

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]