2010-02-23 9 views
2

Quelle est la meilleure façon de créer des fichiers zip dynamiques avec php?Création dynamique zip avec php

Par exemple,

Je ces fichiers sur le serveur,

Root -> Folder 1 -> file1.wav 
Root -> Folder 2 -> file2.jpg 

Je veux créer un fichier zip contient ces 2 fichiers et permettre à l'utilisateur de le télécharger.

toute aide?

Thx en avance

+0

Voir http://stackoverflow.com/search?q=create+zip+php – Gordon

+0

merci et désolé pour le dubliquer –

Répondre

3

Voir la classe ZipArchive; il a ce dont vous avez besoin.

http://www.php.net/manual/en/class.ziparchive.php

Exemple de PHP.Net:

<?php 
$zip = new ZipArchive; 
if ($zip->open('test.zip') === TRUE) { 
    $zip->addFile('/path/to/index.txt', 'newname.txt'); 
    $zip->close(); 
    echo 'ok'; 
} else { 
    echo 'failed'; 
} 
?> 

Après passer comme un éclair, vous pouvez sortir un en-tête de type mime et la sortie du fichier:

header('Content-type: application/zip'); 
readfile('test.zip'); 
+0

c'est un peu différent sur cette page -> if ($ zip-> open ($ filename, ZIPARCHIVE :: CREATE)! == TRUE) { exit ("Impossible d'ouvrir <$filename> \ n"); } –

+0

ne fonctionne pas sous Linux [ –

0

c'est le travail exemple de fabrication de zip en php

$zip = new ZipArchive(); 
$zip_name = time().".zip"; // Zip name 
$zip->open($zip_name, ZipArchive::CREATE); 
foreach ($files as $file) { 
    echo $path = "uploadpdf/".$file; 
    if(file_exists($path)){ 
    $zip->addFromString(basename($path), file_get_contents($path)); 
    } 
    else{ 
    echo"file does not exist"; 
    } 
} 
$zip->close();