Bonjour,

Après plusieurs essais sans succès mais en ayant potentiellement compris le problème, je fais appel à vous :

J'utilise TCPDF pour générer des PDF via l'admin Wordpress (des PDF dont le dossier parent est l'année : "/ANNEE/MON_FICHIER.PDF"
Je suis sur environnement Mac en localhost.
Je créer des PDF via la ligne :
$pdf->Output($filePath, 'F')around

Tout marche à merveille dans la création de fichiers PDF.
Mon seul problème est que j'obtiens toujours l'erreur "Unable to create output file..." quand le dossier n'existe pas.
Je dois toujours le créer manuellement.

J'ai même utiliser le terminal : sudo chmod -R 0777 /opt/lampp/htdocs/compta/
Cette commande est comprise ne veut pas être appliquée tant que le dossier n'a pas été créé avant.
Je dois d'abord créer le dossier, puis faire un "sudo chmod..." pour re-rafraîchir les droits des dossiers (ben oui, obligé... :( )

J'ai donc pensé que c'était l'environnement Mac le problème.
J'ai installé donc mon script sur un localhost sur mon NAS Synology : même problème.
J'ai encore l'erreur "Unable to create output file..."

Ca m'embête de créer à chaque fois des dossiers "numero_annee" manuellement.

Je me pose donc la question : ne serait-ce pas en fait TCPDF qui n'est pas autorisé à créer des dossiers ?
Car, quand j'utilise Wordpress pour uploader des images etc, je n'ai aucun problème d'écriture des dossiers "media/uploads"

Pouvez-vous m'aider à résoudre mon problème?

5 réponses


Je vais tester cela.
Mais dois-je faire un test avant de créer un répertoire ?

Que se passe-t-il si le dossier existe déjà ?

Voilà ce que j'obtiens :

Echec lors de la création des répertoires

J'ai pourtant fait un script test :
$folderPath = get_home_url().'/dossier';

    if (!mkdir($folderPath, 0777, true)) {
        die('Echec lors de la création des répertoires...');
    }

Bonjour,

Voici ce que je ferais dans cet ordre :

Bonjour.
Au lieu de vouloir à tout prix d'essayer de créer le répertoire pour tes tests, vérifies plutôt si le dossier existe ou non, tu peux par exemple t'aider de la fonction is_dir.
Exemple:

if (!is_dir($pathAndFolderName)) {
    mkdir($pathAndFolderName);
}
// Suite du code