$ zip-> gt; addFile на моем сервере не создает папки, а только путь к файлу

обычно следующий скрипт для создания и заполнения zip-архива работает правильно как на локальном, так и на других серверах:

$zip = new ZipArchive();
$zip->open($filename, ZipArchive::CREATE);

foreach( $pathToAssets as $nPath ) {
$files = new RecursiveIteratorIterator(
new RecursiveDirectoryIterator( $nPath ), RecursiveIteratorIterator::LEAVES_ONLY
);

foreach ($files as $name => $file) {

if( $file->getFilename() != '.' && $file->getFilename() != '..' ) {
$filePath = $file->getRealPath();
$temp = explode("/", $name);
array_shift( $temp );
$nName = implode("/", $temp);
$zip->addFile($filePath, $nName);
}

}
}

$zip->close()

но на моем новом сервере этот сценарий вместо создания папок, подпапок и файлов создает только файлы с таким именем «folder \ subfolder \ file.extension»

например:
вместо создания папки css с подпапкой начальной загрузки, которая содержит файл style.css, он создает файл с именем ‘css \ bootstrap \ style.css’

Я не могу понять, где предпринять действия на сервере, чтобы изменить это поведение.
у вас есть предложения для меня?

Спасибо

0

Решение

Метод addfile () добавляет файл в архив, не создает отсутствующие каталоги.

Для создания структуры каталогов внутри архива используйте метод addEmptyDir ()

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]