Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde.
Possuo uma página onde carrego, automaticamente, todos os arquivos .pdf que existem dentro de uma pasta.
Gostaria de ter um link, onde eu clicasse, e todos esses arquivos fossem zipados e já abrisse para download pro cliente.
Tem como?
Grato
Alguém? Por favor
Tentei assim:
<?php
$directory = 'http://www.meusite.com.br/teste/pasta'; //diretorio para compactar
$zipfile = 'backup.zip'; // nome do zip gerado
echo $directory;
$filenames = array();
function browse($dir) {
global $filenames;
if ($handle = opendir($dir)) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != ".." && is_file($dir.'/'.$file)) {
$filenames[] = $dir.'/'.$file;
}
else if ($file != "." && $file != ".." && is_dir($dir.'/'.$file)) {
browse($dir.'/'.$file);
}
}
closedir($handle);
}
return $filenames;
}
browse($directory);
// cria zip, adiciona arquivos...
$zip = new ZipArchive();
if ($zip->open($zipfile, ZIPARCHIVE::CREATE)!==TRUE) {
exit("Não pode abrir: <$zipfile>\n");
}
foreach ($filenames as $filename) {
echo "Arquivo adicionado: <b>" . $filename . "<br/></b>";
$zip->addFile($filename,$filename);
}
echo "Total de arquivos: <b>" . $zip->numFiles . "</b>\n";
//echo "Status:" . $zip->status . "\n";
$zip->close();
?>
Mas deu erro.
Eu queria zipar um diretório e já fazer o download do arquivo zipado.
Tem como?
Carregando comentários...