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

时间:2013-09-20 07:09:36

标签: php zip directory

我有一些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文件。但是,子文件夹正在创建为文件。

我从搜索此论坛上获得了上面的代码,介绍了如何压缩文件夹,但是我看不到有关子文件夹未正确压缩的任何内容。

非常感谢任何帮助。

由于

马丁

1 个答案:

答案 0 :(得分:1)

在向其添加文件之前,您应该使用addEmptyDir创建一个目录。

Here是一个示例(参见热门评论)如何递归归档目录