从目录中获取文件并将其添加到zip文件中

时间:2013-07-17 16:51:03

标签: php arrays file directory zip

我创建了一个名为'files.zip'的zip文件。我的property_image文件夹中有图像。我已经扫描了该目录并拥有我需要的文件类型。 '$ prop_image'是另一个具有图像名称的数组。如果图像文件(位于变量'$ file1'中)在该数组中,那么我正在尝试将该文件添加到zip文件中。

        $zip = new ZipArchive();
        $filename = "files.zip";

        if ($zip->open($filename, ZipArchive::CREATE)!==TRUE) {
            exit("cannot open <$filename>\n");
        }

        $dir = './property_image';
        $file1 = scandir($dir);
        foreach($file1 as $feel){
            $userfile_extn = substr($feel, strrpos($feel, '.')+1);
            if($userfile_extn === 'jpg' || $userfile_extn === 'png' || $userfile_extn === 'gif' || $userfile_extn === 'jpeg'){
                if(in_array($feel, $prop_image)){

                    $zip->addFile("$feel", basename($feel));
                }

            } // end of if($extension ===
        }

        $zip->addFile("$File", basename($File));
        $zip->close();

如果我注释掉代码,此代码只会在该zip文件中添加“$ File”:

$zip->addFile("$feel", basename($feel));

我需要从该目录中添加那些位于zip文件中变量'$ prop_image'内的文件。

我该怎么做?

1 个答案:

答案 0 :(得分:0)

我解决了。

这可能对其他人有帮助,所以,我发布了我的答案。那很简单。我只需要提供保存图像的文件夹名称。

喜欢这个::

$zip->addFile("./property_image/$feel", basename($feel));

取代::

$zip->addFile("$feel", basename($feel));