【问题标题】:$zip->addFile on my Server doesn't create folders but only file path我的服务器上的 $zip->addFile 不会创建文件夹,而只会创建文件路径
【发布时间】:2016-02-07 23:20:50
【问题描述】:

通常,以下用于创建和填充 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”的文件

例如: 它不是使用包含 style.css 文件的引导子文件夹创建 css 文件夹,而是创建一个名为“css\bootstrap\style.css”的文件

我不知道在服务器上的何处采取行动来改变这种行为。 你对我有什么建议吗?

谢谢

【问题讨论】:

    标签: php zip ziparchive php-zip-archive


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2011-04-28
      • 2012-04-22
      • 2021-03-24
      • 2019-05-17
      • 2013-10-10
      • 2022-07-08
      • 2012-03-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多