Скачать директорию с сервера как архив, PHP
На сервере есть директории к которым нет доступа из вне, но есть необходимость их скачивания с сайта. Нашел одну библиотеку для создания архива из "папки" со всеми вложенными в неё директориями и файлами, но проблема в том, что класс, который я нашел не работает корректно.
Какие есть способы, либо библиотеки для генерации архивов "на лету" с возможностью их скачивания?
Ответы (1 шт):
Автор решения: YaMus
→ Ссылка
<?php
class FlxZipArchive extends ZipArchive
{
public function addDir($location, $name)
{
$this->addEmptyDir($name);
$this->addDirDo($location, $name);
}
private function addDirDo($location, $name)
{
$name .= '/';
$location .= '/';
$dir = opendir ($location);
while ($file = readdir($dir))
{
if ($file == '.' || $file == '..') continue;
$do = (filetype( $location . $file) == 'dir') ? 'addDir' : 'addFile';
$this->$do($location . $file, $name . $file);
}
}
}
?>
<?php
$the_folder = '/path/to/folder/to/be/zipped';
$zip_file_name = '/path/to/zip/archive.zip';
$za = new FlxZipArchive;
$res = $za->open($zip_file_name, ZipArchive::CREATE);
if($res === TRUE)
{
$za->addDir($the_folder, basename($the_folder));
$za->close();
}
else{
echo 'Could not create a zip archive';
}
Источник: https://stackoverflow.com/questions/4914750/how-to-zip-a-whole-folder-using-php ?>