PHP ZIP 将子文件夹创建为文件


PHP ZIP creating subfolders as files

我有一些PHP代码,我正在使用它来尝试压缩文件夹。该文件夹中有两个子文件夹和几个单独的文件。

这是代码: -

<?php
    $src = $_POST['srcin'];
    $dst = $_POST['dstin'];
    $zip = new ZipArchive;
    $zip->open($dst, ZipArchive::CREATE);
    if (false !== ($dir = opendir($src)))
         {
             while (false !== ($file = readdir($dir)))
             {
                 if ($file != '.' && $file != '..')
                 {
    $ans = DIRECTORY_SEPARATOR;
                           $zip->addFile($src.DIRECTORY_SEPARATOR.$file);
                 }
             }
         }
         else
         {
             die('Can''t read dir');
         }
    $zip->close();
    echo json_encode('Folder Compressed');
?> 

输入值为:-

srcin = "TestFolder"dstin = "TestFolder.zip"。

正在

发生的事情是我正在获得一个zip文件。但是,子文件夹将创建为文件。

我从搜索这个论坛中获得了有关如何压缩文件夹的上述代码,但我看不到有关子文件夹未正确压缩的任何提及。

任何帮助都非常感谢。

谢谢

马丁

在向目录添加文件之前,应创建一个包含addEmptyDir的目录。

这是一个示例(见顶部评论)如何递归存档目录