`` `PHP
Php
// les informations d'identification de la base de données
$ servername ="localhost";
$ username ="nom d'utilisateur";
$ mot de passe ="mot de passe";
$ dbname ="mydatabase";
// Créer une connexion
$ Conn =new mysqli ($ servername, $ username, $ mot de passe, $ dbname);
// Vérifiez la connexion
if ($ con-> connect_error) {
Die ("La connexion a échoué:". $ con-> connect_error);
}
// Détails de téléchargement de fichiers
$ cible_dir ="uploads /";
$ cible_file =$ cible_dir. Basename ($ _ fichiers ["filetouplload"] ["name"]);
$ uploadok =1;
$ imageFileType =strtolower (pathinfo ($ cible_file, pathinfo_extension));
// Vérifiez si le fichier image est une image réelle ou une fausse image
if (isset ($ _ post ["soumettre"])) {
$ check =getImageSize ($ _ fichiers ["filetouplload"] ["tmp_name"]);
if ($ check! ==false) {
Echo "Le fichier est une image -". $ chèque ["mime"]. ".";
$ uploadok =1;
} autre {
Echo "Le fichier n'est pas une image.";
$ uploadok =0;
}
}
// Vérifiez si le fichier existe déjà
if (file_exists ($ cible_file)) {
Echo "Désolé, le fichier existe déjà.";
$ uploadok =0;
}
// Vérifiez la taille du fichier
if ($ _files ["filetouplload"] ["taille"]> 500000) {
Echo "Désolé, votre fichier est trop grand.";
$ uploadok =0;
}
// Autoriser certains formats de fichiers
if ($ imageFileType! ="jpg" &&$ ImageFileType! ="png" &&$ imageFileType! ="JPEG"
&&$ imageFileType! ="gif") {
Echo "Désolé, seuls les fichiers JPG, JPEG, PNG et GIF sont autorisés.";
$ uploadok =0;
}
// Vérifiez si $ uploadok est défini sur 0 par une erreur
if ($ uploadok ==0) {
Echo "Désolé, votre fichier n'a pas été téléchargé.";
// Si tout va bien, essayez de télécharger un fichier
} autre {
if (move_uploaded_file ($ _ fichiers ["filetouplload"] ["tmp_name"], $ cible_file)) {
écho "le fichier". Basename ($ _files ["filetouplload"] ["name"]). "a été téléchargé.";
// insérer les détails du fichier dans la base de données
$ filename =Basename ($ _ fichiers ["filetouplload"] ["name"]);
$ file_path =$ cible_file;
$ sql ="Insérer dans les fichiers (nom de fichier, file_path) valeurs ('$ filename', '$ file_path')";
if ($ con-> query ($ sql) ===true) {
Echo "Nouvel enregistrement créé avec succès";
} autre {
Echo "Erreur:". $ SQL. " ". $ Conn-> Erreur;
}
} autre {
Echo "Désolé, il y a eu une erreur téléchargeant votre fichier.";
}
}
$ Conn-> close ();
?>
`` '
Explication:
1. Configuration de la base de données:
- Établissez une connexion à votre base de données MySQL à l'aide de l'extension `mysqli`.
- Remplacez les espaces réservés comme «Nom d'utilisateur», «mot de passe» et «MyDatabase» par vos informations d'identification réelles de la base de données.
2. Gestion du téléchargement de fichiers:
- Utilisez le tableau superglobal `$ _Files` pour accéder aux informations sur le fichier téléchargé.
- configurer un répertoire cible (`$ cible_dir`) où le fichier sera enregistré.
- Effectuer la validation de base:
- Vérifiez si le fichier téléchargé est une image réelle (en utilisant `GetImageSize`).
- Vérifiez si le fichier existe déjà dans le répertoire cible.
- Vérifiez si la taille du fichier est dans les limites autorisées.
- Accordez uniquement certains formats de fichiers (par exemple, JPG, PNG, GIF).
3. stockage de fichiers:
- Si la validation passe, utilisez `move_uploaded_file` pour déplacer le fichier temporaire téléchargé dans le répertoire cible.
4. Insertion de la base de données:
- Après le stockage avec succès du fichier, préparez une requête SQL pour insérer les informations du fichier dans votre base de données.
- Cela inclut généralement le nom de fichier et le chemin d'accès au fichier.
- Utilisez la méthode `$ con-> Query` pour exécuter la requête SQL.
Remarques importantes:
- Sécurité: Validez toujours les entrées utilisateur et les téléchargements de fichiers pour éviter les vulnérabilités de sécurité comme les attaques XSS ou l'injection de fichiers.
- Tableau de base de données: Assurez-vous que vous disposez d'une table de base de données appropriée pour stocker les informations de fichier (par exemple, la table des fichiers avec des colonnes comme `FileName`,` file_path`, `file_size`, etc.).
- Gestion des erreurs: Gérer les erreurs potentielles lors du téléchargement de fichiers et de l'insertion de la base de données. Affichez les messages appropriés à l'utilisateur.
- Limites de taille de fichier: Envisagez de définir les limites de taille de fichier appropriées pour empêcher la surcharge du serveur.
- Types de fichiers: Vous pouvez modifier les types de fichiers autorisés en fonction des exigences de votre application.
- Saisition des données: Désinfecter le nom de fichier et d'autres données avant de les stocker dans la base de données pour éviter les attaques d'injection SQL.
- Fichiers volumineux: Pour gérer les fichiers volumineux, envisagez d'utiliser des techniques telles que le groupe ou les téléchargements de streaming.
N'oubliez pas d'adapter cet extrait de code à votre schéma de base de données spécifique et vos exigences de téléchargement de fichiers.
|