<?php
// Definieren Sie den Namen der ZIP-Datei und den Pfad zum Verzeichnis
$zipFileName = "download.zip";
$directory = "./medien/";
// Erstellen Sie ein neues ZipArchive-Objekt
$zip = new ZipArchive;
if ($zip->open($zipFileName, ZipArchive::CREATE) === TRUE) {
// Fügen Sie alle Dateien im Verzeichnis zur ZIP-Datei hinzu
$files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($directory), RecursiveIteratorIterator::LEAVES_ONLY);
foreach ($files as $name => $file) {
if (!$file->isDir()) {
$filePath = $file->getRealPath();
$relativePath = substr($filePath, strlen($directory) + 1);
$zip->addFile($filePath, $relativePath);
}
}
// Schließen Sie das ZIP-Archiv.
$zip->close();
// Setzen Sie die Header, um die ZIP-Datei als Download anzubieten
header('Content-Type: application/zip');
header('Content-Disposition: attachment; filename="' . basename($zipFileName) . '"');
header('Content-Length: ' . filesize($zipFileName));
// Bereinigen und Download starten
ob_clean();
flush();
readfile($zipFileName);
// Löschen Sie die ZIP-Datei, nachdem sie heruntergeladen wurde
unlink($zipFileName);
exit;
} else {
echo 'Fehler: Kann die ZIP-Datei nicht erstellen';
}
?>