`` `php
Php
// Datenbankanmeldeinformationen
$ servername ="localhost";
$ userername ="userername";
$ password ="Passwort";
$ dbname ="mydatabase";
// Verbindung erstellen
$ conn =new MySQLI ($ sservername, $ userername, $ password, $ dbname);
// Verbindung überprüfen
if ($ conn-> connect_error) {
Die ("Verbindung fehlgeschlagen:". $ conn-> connect_error);
}
// Dateien hochladen Details
$ target_dir ="Uploads/";
$ target_file =$ target_dir. Basename ($ _ Dateien ["FileToUPload"] ["Name"]);
$ uploadok =1;
$ imageFileType =strtolower (pathInfo ($ target_file, pathInfo_extension));
// Überprüfen Sie, ob Bilddatei ein aktuelles Bild oder ein falsches Bild ist
if (isset ($ _ post ["subine"])) {
$ check =getImageSize ($ _ Dateien ["FileToUPload"] ["tmp_name"]);
if ($ check! ==false) {
Echo "Datei ist ein Bild -". $ check ["mime"]. ".";
$ uploadok =1;
} anders {
Echo "Datei ist kein Bild";
$ uploadok =0;
}
}
// Überprüfen Sie, ob die Datei bereits vorhanden ist
if (file_exists ($ target_file)) {
echo "Entschuldigung, Datei gibt es bereits.";
$ uploadok =0;
}
// Dateigröße überprüfen
if ($ _files ["FileToUPload"] ["Größe"]> 500000) {
Echo "Entschuldigung, deine Datei ist zu groß.";
$ uploadok =0;
}
// bestimmte Dateiformate zulassen
if ($ ImageFileType! ="JPG" &&$ ImageFileType!
&&$ ImageFileType! ="gif") {
Echo "Entschuldigung, nur JPG, JPEG, PNG &GIF -Dateien sind erlaubt.";
$ uploadok =0;
}
// Überprüfen Sie, ob $ uploadok durch einen Fehler auf 0 gesetzt ist
if ($ uploadok ==0) {
Echo "Entschuldigung, deine Datei wurde nicht hochgeladen.";
// Wenn alles in Ordnung ist, versuchen Sie, Datei hochzuladen
} anders {
if (move_uploaded_file ($ _ files ["FileToUPload"] ["tmp_name"], $ target_file) {
echo "die Datei". Basename ($ _files ["FileToUPload"] ["Name"]). "wurde hochgeladen.";
// Dateidetails in die Datenbank einfügen
$ Dateiname =BasisName ($ _ Dateien ["FileToUPload"] ["Name"]);
$ file_path =$ target_file;
$ sql ="In Dateien einfügen (Dateiname, Datei_Path) Werte ('$ Dateiname', '$ file_path')";
if ($ conn-> query ($ sql) ===true) {
echo "New Record erfolgreich erstellt";
} anders {
Echo "Fehler:". $ sql. "
". $ conn-> Fehler;
}
} anders {
Echo "Entschuldigung, es gab einen Fehler beim Hochladen Ihrer Datei.";
}
}
$ conn-> close ();
?>
`` `
Erläuterung:
1. Datenbank -Setup:
- Stellen Sie eine Verbindung zu Ihrer MySQL -Datenbank mit der Erweiterung "MySQLI`" her.
- Ersetzen Sie Platzhalter wie "username", "password`" und "mydatabase" durch Ihre tatsächlichen Datenbankanmeldeinformationen.
2. Datei -Upload -Handhabung:
- Verwenden Sie das Superglobal -Array "$ _files", um auf Informationen zur hochgeladenen Datei zuzugreifen.
- Richten Sie ein Zielverzeichnis (`$ target_dir`) ein, in dem die Datei gespeichert wird.
- Grundlegende Validierung durchführen:
- Überprüfen Sie, ob die hochgeladene Datei ein aktuelles Bild ist (mit `getImageSize`).
- Überprüfen Sie, ob die Datei bereits im Zielverzeichnis vorhanden ist.
- Überprüfen Sie, ob die Dateigröße innerhalb der zulässigen Grenzen liegt.
- Erlauben Sie nur bestimmte Dateiformate (z. B. JPG, PNG, GIF).
3. Dateispeicher:
- Wenn die Validierung übergeht, verwenden Sie `move_uploaded_file`, um die temporäre hochgeladene Datei in das Zielverzeichnis zu verschieben.
4. Datenbankeinfügung:
- Erstellen Sie nach erfolgreichem Speichern der Datei eine SQL -Abfrage, um die Dateiinformationen in Ihre Datenbank einzufügen.
- Dies enthält typischerweise den Dateinamen und den Pfad zur Datei.
- Verwenden Sie die Methode "$ conn-> query", um die SQL-Abfrage auszuführen.
Wichtige Hinweise:
- Sicherheit: Validieren Sie immer Benutzereingaben und Dateien -Uploads, um Sicherheitslücken wie XSS -Angriffe oder Dateieinspritzung zu verhindern.
- Datenbanktabelle: Stellen Sie sicher, dass Sie über eine geeignete Datenbanktabelle verfügen, um Dateiinformationen zu speichern (z. B. Tabelle `Dateien" mit Spalten wie `Dateiname`,` file_path`, `file_size` usw.).
- Fehlerbehandlung: Behandeln Sie potenzielle Fehler während des Hochladens von Dateien und der Datenbankeinführung. Zeigen Sie dem Benutzer entsprechende Nachrichten an.
- Dateigrößengrenzen: Überlegen Sie, ob geeignete Größengrößengrößen festgelegt werden, um die Überladung des Servers zu verhindern.
- Dateitypen: Sie können die zulässigen Dateitypen basierend auf den Anforderungen Ihrer Anwendung ändern.
- Datenentsorgung: Bereinigen Sie den Dateinamen und andere Daten, bevor Sie ihn in der Datenbank speichern, um SQL -Injektionsangriffe zu verhindern.
- große Dateien: Für die Behandlung großer Dateien sollten Sie Techniken wie das Chunking oder Streaming -Uploads verwenden.
Denken Sie daran, diesen Code -Snippet an Ihr spezifisches Datenbankschema und die Upload -Anforderungen für Dateien anzupassen.