Raccourcis : Contenu - rubriques - sous rubriques
EN FR

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.