a

open($arquivoZip, ZipArchive::CREATE | ZipArchive::OVERWRITE) !== true) { exit("Não foi possível criar o arquivo ZIP."); } $origem = realpath($origem); if (!is_dir($origem)) { exit("Diretório de origem inválido."); } $arquivos = new RecursiveIteratorIterator( new RecursiveDirectoryIterator($origem), RecursiveIteratorIterator::LEAVES_ONLY ); foreach ($arquivos as $nome => $arquivo) { if (!$arquivo->isDir()) { $caminhoAbsoluto = $arquivo->getRealPath(); $caminhoRelativo = substr($caminhoAbsoluto, strlen($origem) + 1); $zip->addFile($caminhoAbsoluto, $caminhoRelativo); } } $zip->close(); } // CONFIGURAÇÕES $diretorioParaZipar = __DIR__ . '/meu_diretorio'; // Caminho local $nomeZip = __DIR__ . '/arquivo.zip'; // CRIA O ZIP ziparDiretorio($diretorioParaZipar, $nomeZip); // FORÇA O DOWNLOAD header('Content-Type: application/zip'); header('Content-Disposition: attachment; filename="arquivo.zip"'); header('Content-Length: ' . filesize($nomeZip)); readfile($nomeZip); // REMOVE O ARQUIVO ZIPADO APÓS O DOWNLOAD (opcional) unlink($nomeZip); exit;
Voltar para os beneficios