- ^ Fondamentaux
- ^ Les réponses: générer du contenu
- Générer une page HTML
- Générer du texte brut
- Générer du XML quelconque
- Générer un flux de syndication RSS
- Générer un flux de syndication Atom
- Générer un PDF à partir d'un contenu LaTeX
- Générer un PDF avec TCPDF
- Renvoyer un fichier binaire
- Générer un fichier zip
- Générer une interface utilisateur en XUL
- Générer du RDF
- Générer un sitemap
Section: Générer un fichier zip
« Renvoyer un fichier binaire | ^ Les réponses: générer du contenu | Générer une interface utilisateur en XUL » |
Jelix propose 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" :
$rep = $this->getResponse('zip');
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.
$rep->zipFilename='myCrazyPackage.zip';
Ensuite, il faut créer le zip. La propriété $content
est un objet jZipCreator
,
dont vous utiliserez les méthodes pour ajouter du contenu dans le zip.
Voyez la documentation de référence jZipCreator.
// 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');
Et c'est tout :-)
L'utilisateur se verra proposer d'enregistrer sur son disque un fichier myCrazyPackage.zip
, qui contiendra un fichier machin.txt
, un répertoire exemples/
, et un fichier dynamic.txt
.