From 34c4d0d0c37c7f640a1a6373bba30ebe1129d6c4 Mon Sep 17 00:00:00 2001 From: polo Date: Wed, 3 Jun 2026 21:42:46 +0200 Subject: =?UTF-8?q?t=C3=A9l=C3=A9chargement=20des=20fichiers=20media,=20un?= =?UTF-8?q?=20tout=20petit=20peu=20de=20responsive=20design?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/service/UserDataService.php | 46 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 src/service/UserDataService.php (limited to 'src/service/UserDataService.php') diff --git a/src/service/UserDataService.php b/src/service/UserDataService.php new file mode 100644 index 0000000..5fa60d5 --- /dev/null +++ b/src/service/UserDataService.php @@ -0,0 +1,46 @@ +open($file_path, ZipArchive::CREATE | ZipArchive::OVERWRITE) !== TRUE){ // ou ZipArchive::FL_OVERWRITE, à comparer à ZipArchive::OVERWRITE + throw new RuntimeException("Création ou ouverture du fichier demandé impossible à cause d'une erreur de permissions sur le serveur."); + } + + // recherche récursive dans les dossiers dans $source_directories, c'est comme le paramètre "-r" dans la console + $counter = 0; + foreach($source_directories as $path){ + $directory = new RecursiveDirectoryIterator($path); + $iterator = new RecursiveIteratorIterator($directory); + + foreach($iterator as $info){ + if($info->getFilename() != "." && $info->getFilename() != ".."){ // chemins inutiles . et .. + $Zip->addGlob($info->getPathname(), 0, array('')); + $counter++; + } + } + } + // recherche à la racine avec des pattern de noms de fichiers (optionnel) + foreach($pattern_to_target_in_user_data as $one_pattern){ + $Zip->addGlob($one_pattern, 0, array('')); + } + + $Zip->close(); + if($counter > 0){ + //chmod($file_path, 0666); + return $zip_name; + } + else{ + throw new RuntimeException("Téléchargement des fichiers impossible, aucun fichier n'a été trouvé sur le serveur."); + } + } +} \ No newline at end of file -- cgit v1.2.3