2016-02-07 5 views
0

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

$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() 

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

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

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

благодаря

ответ

0

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^