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 .
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'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'est produite pendant le téléchargement';
}
?>
La clé de ce code est:
Utilisez is_dir () pour vérifier si le répertoire de téléchargement cible existe.
S'il n'existe pas, utilisez MKDIR () pour créer le répertoire récursivement.
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.
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/';
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'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.