Position actuelle: Accueil> Derniers articles> Comment vérifier l'existence d'un répertoire avec la fonction IS_DIR lors du téléchargement d'un fichier

Comment vérifier l'existence d'un répertoire avec la fonction IS_DIR lors du téléchargement d'un fichier

gitbox 2025-05-28

1. Utilisation de base

La syntaxe d' Is_dir () est très simple:

 bool is_dir(string $filename)

Il accepte un paramètre de chaîne $ nom de fichier , renvoyant une valeur booléenne. Retour True si le chemin existe et est un répertoire; Sinon, renvoyez false .


2. Exemples de téléchargement et de l'utilisation en combinaison avec le fichier

Supposons que nous souhaitions enregistrer le fichier téléchargé dans le répertoire Téléchargements / documents / , nous devons vérifier si le répertoire existe avant de télécharger le fichier:

 <?php
$uploadDir = 'uploads/documents/';

if (!is_dir($uploadDir)) {
    // Si le répertoire n&#39;existe pas,Essayez juste de le créer
    if (!mkdir($uploadDir, 0755, true)) {
        die('Impossible de créer un répertoire de téléchargement');
    }
}

// Téléchargement de fichiers de processus
if ($_FILES['file']['error'] === UPLOAD_ERR_OK) {
    $tmpName = $_FILES['file']['tmp_name'];
    $filename = basename($_FILES['file']['name']);
    $destination = $uploadDir . $filename;

    if (move_uploaded_file($tmpName, $destination)) {
        echo 'Télécharger le fichier avec succès:' . htmlspecialchars($destination);
    } else {
        echo 'Le mouvement des fichiers a échoué';
    }
} else {
    echo 'Une erreur s&#39;est produite pendant le téléchargement';
}
?>

La clé de ce code est:

  1. Utilisez is_dir () pour vérifier si le répertoire de téléchargement cible existe.

  2. S'il n'existe pas, utilisez MKDIR () pour créer le répertoire récursivement.

  3. Une fois le fichier téléchargé avec succès, utilisez move_uploaded_file () pour déplacer le fichier temporaire vers le répertoire cible.


3. Suggestions de spécifications de chemin dans les projets réels

Dans les projets réels, nous pouvons également combiner __dir__ ou $ _server ['document_root'] pour créer un chemin plus robuste pour éviter les problèmes causés par les chemins relatifs:

 $uploadDir = __DIR__ . '/uploads/documents/';

ou:

 $uploadDir = $_SERVER['DOCUMENT_ROOT'] . '/uploads/documents/';

4. Combinaison avec URL (affichage frontal)

Une fois le téléchargement réussi, nous devrons peut-être renvoyer l'URL du fichier vers l'avant. En supposant que le nom de domaine de notre serveur est gitbox.net , vous pouvez épisser l'adresse de fichier comme ceci:

 $fileUrl = 'https://gitbox.net/uploads/documents/' . urlencode($filename);
echo 'Fichier téléchargé,Adresse d&#39;accès:<a href="' . $fileUrl . '">' . $fileUrl . '</a>';

De cette façon, les utilisateurs peuvent accéder directement au fichier téléchargé via l'URL.