aboutsummaryrefslogtreecommitdiff
path: root/src/service/UserDataService.php
diff options
context:
space:
mode:
authorpolo <ordipolo@gmx.fr>2026-06-03 21:42:46 +0200
committerpolo <ordipolo@gmx.fr>2026-06-03 21:42:46 +0200
commit34c4d0d0c37c7f640a1a6373bba30ebe1129d6c4 (patch)
tree5852421a6282dc95d2413dee34694691a53bd25a /src/service/UserDataService.php
parenta3f64de3eaaf1d9acbc82f7dfdf34a239411c0ba (diff)
downloadcms-34c4d0d0c37c7f640a1a6373bba30ebe1129d6c4.tar.gz
cms-34c4d0d0c37c7f640a1a6373bba30ebe1129d6c4.tar.bz2
cms-34c4d0d0c37c7f640a1a6373bba30ebe1129d6c4.zip
téléchargement des fichiers media, un tout petit peu de responsive design
Diffstat (limited to 'src/service/UserDataService.php')
-rw-r--r--src/service/UserDataService.php46
1 files changed, 46 insertions, 0 deletions
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 @@
1<?php
2// src/service/UserDataService.php
3
4declare(strict_types=1);
5
6class UserDataService
7{
8 static private string $var = '../var';
9
10 static public function createZip(string $zip_name, array $source_directories, array $pattern_to_target_in_user_data = []): string
11 {
12 $file_path = self::$var . '/' . $zip_name;
13 $Zip = new ZipArchive();
14
15 if($Zip->open($file_path, ZipArchive::CREATE | ZipArchive::OVERWRITE) !== TRUE){ // ou ZipArchive::FL_OVERWRITE, à comparer à ZipArchive::OVERWRITE
16 throw new RuntimeException("Création ou ouverture du fichier demandé impossible à cause d'une erreur de permissions sur le serveur.");
17 }
18
19 // recherche récursive dans les dossiers dans $source_directories, c'est comme le paramètre "-r" dans la console
20 $counter = 0;
21 foreach($source_directories as $path){
22 $directory = new RecursiveDirectoryIterator($path);
23 $iterator = new RecursiveIteratorIterator($directory);
24
25 foreach($iterator as $info){
26 if($info->getFilename() != "." && $info->getFilename() != ".."){ // chemins inutiles . et ..
27 $Zip->addGlob($info->getPathname(), 0, array(''));
28 $counter++;
29 }
30 }
31 }
32 // recherche à la racine avec des pattern de noms de fichiers (optionnel)
33 foreach($pattern_to_target_in_user_data as $one_pattern){
34 $Zip->addGlob($one_pattern, 0, array(''));
35 }
36
37 $Zip->close();
38 if($counter > 0){
39 //chmod($file_path, 0666);
40 return $zip_name;
41 }
42 else{
43 throw new RuntimeException("Téléchargement des fichiers impossible, aucun fichier n'a été trouvé sur le serveur.");
44 }
45 }
46} \ No newline at end of file