如何从文件夹创建一个zip文件 - php

时间:2016-09-09 15:32:32

标签: php file zip archive

我有问题。

我在网上寻找解决方案,但没有什么效果好。我试图创建一个脚本,从文件夹中取出文件并将它们放入zip存档中。 但它没有用......

我尝试了不同的路径,但只有我混淆了,没有任何结果。

以下是根据我最简单的当前代码并且应该工作但是没有这样做..

你能帮助我吗?

function archivebackup(){
    $zip = new ZipArchive;
    if ($zip->open('Mail.zip', ZipArchive::CREATE) === TRUE){

        foreach (new DirectoryIterator('Mails/') as $fileInfo) {
            $fileName = $fileInfo->getFilename();
            // echo $fileName ."<br>";
            $zip->addFile($fileName);
        }   

        $zip->close();
    } 
}

1 个答案:

答案 0 :(得分:1)

您似乎没有在当前工作目录中包含文件,getFilename()只返回没有路径的文件名。

执行以下操作:

function archivebackup(){
    $zip = new ZipArchive;
    if ($zip->open('Mail.zip', ZipArchive::CREATE) === TRUE){

        foreach (new DirectoryIterator('Mails/') as $fileInfo) {
            if (in_array($fileInfo->getFilename(), [ ".", ".." ]) { continue; }
            $fileName = $fileInfo->getPathname();
            $zip->addFile($fileName);
        }   

        $zip->close();
    } 
}