php zip архивация папок

102
03 февраля 2021, 15:00

подскажите, как записывать файлы в архив? сейчас создает архив с пустыми папкам

$file_folder = "/assets/images/products/";
if(extension_loaded('zip'))
    {
        $zip = new ZipArchive(); // подгружаем библиотеку zip
        $zip_name = time().".zip"; // имя файла
        if($zip->open($zip_name, ZIPARCHIVE::CREATE)!==TRUE)
        {
            $error .= "* Sorry ZIP creation failed at this time";
        }
        foreach($files as $file)
        {
            echo $file;
            $zip->addEmptyDir ($file_folder.$file);
        }
        $zip->close();
        if(file_exists($zip_name))
        {
            // отдаём файл на скачивание
            header('Content-type: application/zip');
            header('Content-Disposition: attachment; filename="'.$zip_name.'"');
            //readfile($zip_name);
            // удаляем zip файл если он существует
            //unlink($zip_name);
            $zip('/assest/', $zip_name);
            echo $zip_name;
        }
    $zip('/assest/', $zip_name);
    }
Answer 1

Дело в том, что Вы сами добавляете пустые папки:

$zip->addEmptyDir ($file_folder.$file);

Лучше попробуйте это:

$zip->addFile ($file_folder.$file);
READ ALSO
Не работает PHP (Работа с картинками,сжатие)

Не работает PHP (Работа с картинками,сжатие)

Всем привет! У меня есть такой вот клас для сжатия картинки:

101
Выбор сервера для web-проекта (20 тыщ посетителей) [закрыт]

Выбор сервера для web-проекта (20 тыщ посетителей) [закрыт]

Хотите улучшить этот вопрос? Переформулируйте вопрос так, чтобы он был сосредоточен только на одной проблеме

116
UPDATE & SELECT запрос не работает

UPDATE & SELECT запрос не работает

Хочу что б оновлялись 3 поля соответвующие строке в которой будет пропуск 0006 и максимальный ид, все в одной таблицеСобственно:

124
Undefined offset: 1 Failed to prepare SQL: INSERT INTO

Undefined offset: 1 Failed to prepare SQL: INSERT INTO

Помогите,пожалуйста,разобраться,целый день не могу понять ошибкиЕсть проект

151