Задача довольно простая: есть на хостинге много каталогов с n-ным количеством файлов (до 15 штук) каждый. Файлы с разными расширениями.
Время от времени мне надо брать все содержимое какого-нить одного такого каталога к себе на локальную машинку. Не могу сообразить, как бы мне забрать из каталога все одним файлом, но так, чтобы архив не сохранялся.
Создать сам архив - не проблема. Например:
<?PHP
$pathdir='test/'; // путь к папке, файлы которой будем архивировать
$nameArhive = 'test.zip'; //название архива
$zip = new ZipArchive; // класс для работы с архивами
if ($zip -> open($nameArhive, ZipArchive::CREATE) === TRUE){ // создаем архив, если все прошло удачно продолжаем
$dir = opendir($pathdir); // открываем папку с файлами
while( $file = readdir($dir)){ // перебираем все файлы из нашей папки
if (is_file($pathdir.$file)){ // проверяем файл ли мы взяли из папки
$zip -> addFile($pathdir.$file, $file); // и архивируем
echo("Заархивирован: " . $pathdir.$file) , '<br/>';
}
}
$zip -> close(); // закрываем архив.
echo 'Архив успешно создан';
}else{
die ('Произошла ошибка при создании архива');
}
?>
однако при таком раскладе:
1) архив останется где-то там на хостинге. А как бы не надо;
2) придется делать еще один клик мышкой по полученной ссылке на архив. А хотелось бы по одному клику сразу скачать...
Подскажите, плиз
Время от времени мне надо брать все содержимое какого-нить одного такого каталога к себе на локальную машинку. Не могу сообразить, как бы мне забрать из каталога все одним файлом, но так, чтобы архив не сохранялся.
Создать сам архив - не проблема. Например:
<?PHP
$pathdir='test/'; // путь к папке, файлы которой будем архивировать
$nameArhive = 'test.zip'; //название архива
$zip = new ZipArchive; // класс для работы с архивами
if ($zip -> open($nameArhive, ZipArchive::CREATE) === TRUE){ // создаем архив, если все прошло удачно продолжаем
$dir = opendir($pathdir); // открываем папку с файлами
while( $file = readdir($dir)){ // перебираем все файлы из нашей папки
if (is_file($pathdir.$file)){ // проверяем файл ли мы взяли из папки
$zip -> addFile($pathdir.$file, $file); // и архивируем
echo("Заархивирован: " . $pathdir.$file) , '<br/>';
}
}
$zip -> close(); // закрываем архив.
echo 'Архив успешно создан';
}else{
die ('Произошла ошибка при создании архива');
}
?>
однако при таком раскладе:
1) архив останется где-то там на хостинге. А как бы не надо;
2) придется делать еще один клик мышкой по полученной ссылке на архив. А хотелось бы по одному клику сразу скачать...
Подскажите, плиз