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


how to create a zip file from a folder - php

我有一个问题。

我在网上搜索了一个解决方案,但没有一个效果很好。我试图使一个脚本,将采取文件从一个文件夹,并把它们扔到一个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();
    } 
}

似乎你没有在当前工作目录中包括文件,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();
    } 
}