Пытаюсь зарахивировать файлы. Сначала пробовал напрямую файлы тоскать, а потом просто использовать тестовые файлы через $zip->addFromString. И в том, и в том случае файлы попадали в архив и архив скачивался, только не открывался. Что в винде, что на убунту пишется о том что ошибка в архиве.
Спустя несколько попыток скопипастить код из интернетов, архив перехотел закрываться и начал жаловаться "Warning: ZipArchive::close(): Failure to create temporary file: Permission denied in /var/www/html/actions/file-zip.php on line 9"
Пробовал все возвращать в исходное состояние, но в итоге та самая ошибка с правами. Всё это время работал только с файликом отвечающим за код архива и даже в нем просто писал примеры из доков и менял местами header
Вот последняя попытка:
$zip = new ZipArchive();
$zip_name = "test.zip";
if($zip->open($zip_name, ZipArchive::CREATE) !== TRUE) {
echo("Zip failed");
} else {
$zip->addFromString("testfilephp.txt" . time(), "#1 Это тестовая строка добавляется в качестве testfilephp.txt.\n");
$zip->close();
if (file_exists($zip_name)) {
header('Content-Type: application/zip');
header('Content-disposition: attachment; filename='.time().'.zip');
header('Content-Length: ' . filesize($zip_name));
readfile($zip_name);
} else {
exit("Could not find Zip file to download");
}
}