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 40 41 42 43 44
|
ini_set('memory_limit', '512M');
$dire=mon_repertoire/cl/'.$nomdoss; /* chemin si j'utilise ce script avec des fichiers a zipper, le tout hebergé sur le meme serveur */
if (($conn_client_id) and ($login_client_result)){ $dire=$chemin_conx.'/cl/'.$nomdoss; /* chemin si j'utilise ce script sur le serveur 1 et que je veux zipper les fichiers présents sur le serveur 2 */ }
$nom=$nomdoss;
$zip = new ZipArchive;
$temp_file = tempnam(sys_get_temp_dir(), 'zip');
$res = $zip->open($temp_file, ZipArchive::CREATE);
if ($res === TRUE)
{
$iterator = new DirectoryIterator(''.$dire.'');// répertoire à lister
foreach ($iterator as $fileinfo)
{
$fillok=$fileinfo->getFilename();
if ($dest<>"")
{
$res=$base->query("SELECT * FROM `table_liste_doc` where `nom_doc`='$fillok' and `$dest`='1'")->fetchAll(PDO::FETCH_ASSOC);
}
else
{
$res = $base->query("SELECT * FROM `table_liste_doc` where nom_doc='$fillok'")->fetchAll(PDO::FETCH_ASSOC);
}
$fillok=substr ($fillok, 0, 6);
foreach ($res as $tmpn2 => $cl)
{
if ($fillok != 'DOCINT' and $fillok != 'PROPBQ')
{
if ($fileinfo->isFile() && $fileinfo->getFilename() != '.htaccess')
{
$zip->addFile($fileinfo->getPathname());
}
}
}
}
$zip->close();
header("Content-Type: application/force-download");
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="'.$nom.'.zip"'); //Nom du fichier.
header('Content-Length: '.filesize($temp_file)); //Taille du fichier.
readfile($temp_file);
} |
Partager