Avatar ·

Créer un dossier s'il n'existe pas : la bonne méthode en PHP

Bonjour à tous ! Je suis débutant en PHP et j'essaie de faire un CMS simple sur WordPress. J'ai besoin que lors du téléchargement d'images sur le serveur, un dossier soit créé par date, par exemple /uploads/2024/03/. Mais je reçois constamment l'erreur "failed to open stream: No such file or directory" si les dossiers n'existent pas encore.

Voici mon code actuel :

$path = '/var/www/html/uploads/' . date('Y/m');
$file = $path . '/image.jpg';

// J'essaie de sauvegarder le fichier
file_put_contents($file, $data);

J'ai déjà essayé d'utiliser mkdir($path) avant l'écriture, mais le dossier n'est toujours pas créé. J'ai cherché sur Google — on dit qu'il faut vérifier l'existence. J'ai ajouté une vérification :

if (!file_exists($path)) {
    mkdir($path);
}

Mais maintenant j'ai l'erreur "mkdir(): No such file or directory" ! Qu'est-ce que je fais de travers ? Pourquoi mkdir ne peut-il pas créer un dossier s'il n'existe pas ? Peut-être faut-il définir les permissions ? Ou est-ce que j'indique mal le chemin ? Dites-moi comment créer correctement un dossier imbriqué.