2009-06-05 8 views
3

Mon site web écrit 3 petits fichiers texte basés sur les informations des utilisateurs, puis présente ces 3 fichiers en tant que liens qu'ils doivent «clic droit» et enregistrer sur leur bureau.PHP Zip 3 petits fichiers texte et de la force de téléchargement

Je voudrais garder cela, mais aussi offrir un moyen de compresser ces 3 petits fichiers et de forcer le téléchargement. Et je ne veux pas non plus enregistrer le fichier zip sur le serveur. Est-ce possible de le faire et comment?

Merci!

Répondre

12

Pour le téléchargement forcé, vous devez d'abord envoyer les en-têtes de fichiers. Pour zipper, vous voulez utiliser les bibliothèques zip d'un PHP, puis echo/output le contenu zippé.

http://ca3.php.net/manual/en/zip.examples.php

Quelque chose comme ceci:

$zip = new ZipArchive(); 
//the string "file1" is the name we're assigning the file in the archive 
$zip->addFile(file_get_contents($filepath1), 'file1'); //file 1 that you want compressed 
$zip->addFile(file_get_contents($filepath2), 'file2'); //file 2 that you want compressed 
$zip->addFile(file_get_contents($filepath3), 'file3'); //file 3 that you want compressed 
echo $zip->file(); //this sends the compressed archive to the output buffer instead of writing it to a file. 
+0

est-il un moyen de créer réellement le fichier compressé « à la volée » sans réellement créer et enregistrer le fichier zip? ou est-ce que ce qui précède accomplit cela? –

+0

Cet exemple fait cela .. il ne sauvegarde pas le fichier, il le garde juste en mémoire avant de l'écho. "file1", "file2", et "file3" sont les fichiers que vous avez demandé d'avoir compressés. – Ian

Questions connexes