我的服务器上的$zip->addFile不会创建文件夹,而只会创建文件路径


$zip->addFile on my Server doesn't create folders but only file path

通常,以下用于创建和填充 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()

但是在我的新服务器中,此脚本不是创建文件夹,子文件夹和文件,而是仅创建具有此名称"文件夹''子文件夹''文件扩展名"的文件

例如:它不是创建一个包含 style.css 文件的引导子文件夹的 CSS 文件夹,而是创建一个名为"css''bootstrap''style.css"的文件

我不知道在服务器上的哪个位置采取行动来更改此行为。你对我有什么建议吗?

谢谢

方法 addfile() 将文件添加到存档中,不会创建丢失的目录。

要在存档中创建目录结构,请使用方法 addEmptyDir()