$zip = new ZipArchive();
$filename = "image/files.zip";
if ($zip->open($filename, ZipArchive::CREATE)!==TRUE) {
exit("cannot open <$filename>\n");
}
$zip->addFile("$File", basename($File));
$zip->close();
我已在zip中添加了一个文件,该文件位于变量'$ File'中。该文件存在于同一文件夹(图像)中。我需要在同一个zip文件中添加图像。这些图像位于“images”文件夹中。我想我需要扫描图像并将它们添加到相同的zip中。但我不知道该怎么做。
如何获取添加到现有zip文件或新文件中的文件的特定类型(jpeg,png,gif)?我必须在我的zip文件的根目录中添加图像,而不是在zip文件中的任何文件夹中。图像在一个目录('images')中,我需要将它们添加到我的zip文件中,该文件也保存在同一目录中。
答案 0 :(得分:0)
$zip = new ZipArchive;
if ($zip->open('source.zip') === TRUE)
{
for($i = 0; $i < $zip->numFiles; $i++)
{
$fp = $zip->getStream($zip->getNameIndex($i));
if(!$fp) exit("failed\n");
while (!feof($fp)) {
$contents = fread($fp, 8192);
// explode for extension and do what ever you want
}
fclose($fp);
}
}
else
{
echo 'Error reading zip-archive!';
}
答案 1 :(得分:0)
这就是我解决它的方法。
$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)){
//echo $feel;
$zip->addFile("./property_image/$feel", basename($feel));
}
} // end of if($extension ===
} // end of foreach