Не получается создать архив, т.е. создан вручную в корневой папке каталог "zip", права на который с флагами 0777.
Код скрипта прикрепляю ниже.
Подскажите, пожалуйста, в чем ошибка и как ее исправить, если это возможно.
<form action="" method="POST">
Путь к папке\директории, которые нужны заархивировать:
<input name="path" type="text" />
<input type="submit" value="Zip" />
</form>
<?php
ini_set('display_startup_errors',1);
ini_set('display_errors',1);
error_reporting(-1);
$dirPath = $_POST["path"];
$dirOutputPath = "/zip/";
$site = $_SERVER["HTTP_HOST"];
if(isset($dirPath)){
//Создаем новый класс
$zip = new ZipArchive();
//Указывает текущую дату
$currentDate = Date("d_M_Y");
//Указывем имя для нового архива
$zipArchiveFilename = $dirOutputPath . "Backup_" . $currentDate . ".zip";
echo "Архив сохранится в директорию: " . $zipArchiveFilename . "<br />";
//Если открытый архив не создан, то создать его
if ($zip->open($zipArchiveFilename, ZIPARCHIVE::CREATE) === TRUE) {
//Заходим в директорию, добавляем файлы в архив, после чего закрываем архив.
$pathToArchive = opendir($dirPath);
while( $currentFile = readdir($pathToArchive) ) {
echo "Добавляет файл " . $currentFile . " в архив " . $zipArchiveFilename . " размером " . filesize( $dirPath . "/" .$currentFile ) . "<br />";
$zip->addFile($site . "/" . $dirPath . "/" . $currentFile, $currentFile);
}
$zip->close();
//Если архив создан - выводим сообщение
if( is_file($zipArchiveFilename) ){
echo "Архив с именем " . $zipArciveFilename . " успешно создан!";
}
//fwrite(STDOUT, "Архив успешно создан!\n");
exit();
} else{
die("Ошибка при создании архива");
}
}
ini_set('display_startup_errors',0);
ini_set('display_errors',0);
?>