Ошибка
Warning: ZipArchive::close(): Read error: Is a directory in /путь до скрипта/public_html/crm/drive/drive.php on line 102
Проблема такая пишу скрипт который должен архивировать папки и файлы внутри, но не могу понять, как сделать если внутри одной папке есть ещё одна папка. Объясню на примере, так работает норм
папка +
файл1
файл2
и т.д
(так работает)
но так работать не хочет
папка+
файл1
ПАПКА
(так не работает)
вопрос как сделать так что бы если скрипт видел папку то тоже скачивал и если снова видел внутри той папке еще папку то тоже скачивал и файлы в папках соответственно ? вот мой скрипт
<form name='pathZip' method='post'>
<a href='#'>
<div class='folder'><img src='img/folder.png'><span class='text-folder'>folder2</span></div>
</a>
<input type='checkbox' name='pathUpload[]' ' value=folder2 />
<input type='submit ' name='createPath ' value='Download as ZIP ' />
<input type='reset ' name='reset ' value='Reset ' />
</form>
И сам обработчик
if (isset($_POST['createPath'])) {//проверям что кнопка нажата
$zip = new ZipArchive(); // содаём архив
$zip_name = time().".zip"; // имя файла
if ($zip->open($zip_name, ZipArchive::CREATE) !== true) { // открываем файл
die ("Could not open archive");//если файл не открывается
}
$var = $_POST["pathUpload"];// массв переменных что переданы через форму
foreach ($var as $key_var) {// обраатываем массив
$iterator = new RecursiveDirectoryIterator($key_var);//происходит рекурсионый перебор каталогов файловой системы
foreach ($iterator as $key => $value) {// обрабатываем массив файлами
$path = pathinfo($value);//проверяем путь или возврощаем путь к файлу
if ($path['basename'] == '.' || $path['basename'] == '..') continue;//проверям те файлы что скачаем если в файлах присутствуют точки то скачиваем
$zip->addFile(realpath($key), $key);//добавляем файл на сервер
}
$zip->close();//закрываем архив
if (file_exists($zip_name)) {
// отдаём файл на скачивание
header('Content-type: application/zip', 'charset=utf-8');
header('Content-Disposition: attachment; filename="'.$zip_name.'"');
ob_end_flush();//буферизация так как без неё ничего работать не будет
readfile($zip_name); //читаем файл
unlink($zip_name);//удаляем переменную
}
}
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
Вопрос не о том какой язык лучше, а о том с каким легче найти работу в провинции
Есть код товара: 544049568640 возможно ли это шифровать например как то так: ZUePM2pD7zChI1 потом обратно расшифровать в 544049568640
ЗдравствуйтеХочу сделать динамическое создание поддоменов