添加图像文件进行存档

时间:2015-06-24 11:32:55

标签: php zip

您好我在将文件添加到存档时遇到此问题,如果有人可以帮助我,这对我有帮助。基本上我需要添加到存档的所有文件都在csv文件中。我正在使用fgetcsv读取此文件,然后尝试遍历每个图像并将其添加到存档。

        $media_file = "C:/e_files/Exports/Imagery.csv";

        $zip = new ZipArchive();
        $zip->open('C:/e_files/Exports/Feeds/Media.zip', ZipArchive::CREATE | ZipArchive::OVERWRITE);


        if (($handle = fopen($media_file, "r")) !== FALSE) 
        {
            $row = 1;

            while (($data = fgetcsv($handle)) !== FALSE) 
            {
                if($row > 1)
                {
                    $image_name = isset($data[1]) ? $data[1] : null;

                    if(!empty($image_name))
                    {
                        $zip->addFile("C:/e_files/Images/$image_name");
                    }
                }

                $row++;
            }
        }

        $zip->close();

$ media_file是包含需要添加到存档的所有图像名称的文件。

C:/ e_files / Images是存储所有图像的路径,我必须从中获取特定图像并添加到存档。

但是当我运行它时,它将整个C:/ e_files /添加到zip。

1 个答案:

答案 0 :(得分:0)

使用第二个参数 localname

*
  

<强>的localName
  如果提供,这是ZIP存档中将覆盖文件名的本地名称。

来源:http://php.net/manual/en/ziparchive.addfile.php

文件名似乎错误地从路径派生而且始终是相同的值,它会一直覆盖以前添加的文件。