/
vue-zip.gtw
40 lines (28 loc) · 1.46 KB
/
vue-zip.gtw
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
~~LANG:EN@enman:views/view-zip~~
Jelix propose @@C@jResponseZip@@ qui permet de générer un fichier zip à la
volée, et le proposer en téléchargement à l'utilisateur. L'alias est "zip" :
<code php>
$rep = $this->getResponse('zip');
</code>
Vous devez ensuite indiquer un nom de fichier. C'est sous ce nom que le contenu
zip sera proposé à l'utilisateur. Ce nom de fichier n'est pas forcément celui
d'un fichier existant sur le serveur.
<code php>
$rep->zipFilename='myCrazyPackage.zip';
</code>
Ensuite, il faut créer le zip. La propriété @@P@$content@@ est un objet @@C@jZipCreator@@,
dont vous utiliserez les méthodes pour ajouter du contenu dans le zip.
Voyez la documentation de référence [[refclass:utils/jZipCreator|jZipCreator]].
<code php>
// ajoute le contenu du fichier datas/truc.txt stocké sur le serveur,
// et le réference dans le zip sous le nom machin.txt
$rep->content->addFile(JELIX_VAR_PATH.'datas/truc.txt', 'machin.txt');
// ajoute tout le contenu d'un répertoire "exemples" stocké sur le serveur
$rep->content->addDir(JELIX_VAR_PATH.'exemples/', 'exemples', true);
// créer un fichier dans le zip, avec le nom et le contenu donné
$rep->content->addContentFile('dynamic.txt', 'contenu généré comme on veut');
</code>
Et c'est tout :-)
L'utilisateur se verra proposer d'enregistrer sur son disque un fichier
@@F@myCrazyPackage.zip@@, qui contiendra un fichier @@F@machin.txt@@, un
répertoire @@F@exemples/@@, et un fichier @@F@dynamic.txt@@.