Php 将文件添加到zip会添加包含文件的文件夹
因此,我有一个目录,在它的根目录中包含一个Php 将文件添加到zip会添加包含文件的文件夹,php,zip,Php,Zip,因此,我有一个目录,在它的根目录中包含一个文件文件夹,在它里面有一个测试文件夹,其中包含txt文件,然后我有以下php代码: 函数displayZip($name) $zip=新的ZipArchive(); $filename=“files/$name.zip”; 如果($zip->open($filename,ZipArchive::CREATE)!==TRUE){ 退出(“无法打开”); } $dir=“files/$name/”; createZip($zip$dir); $zip->c
文件
文件夹,在它里面有一个测试
文件夹,其中包含txt文件,然后我有以下php代码:
函数displayZip($name)
$zip=新的ZipArchive();
$filename=“files/$name.zip”;
如果($zip->open($filename,ZipArchive::CREATE)!==TRUE){
退出(“无法打开”);
}
$dir=“files/$name/”;
createZip($zip$dir);
$zip->close();
rmdir(“文件/$name”);
}
函数createZip($zip,$dir,$name){
if(is_dir($dir)){
如果($dh=opendir($dir)){
while(($file=readdir($dh))!==false){
//如果文件
if(is_文件($dir.$file)){
如果($file!=''&&$file!='.&&&$file!=''..')){
$zip->addFile($dir.$file);
}
}
}
closedir($dh);
}
}
它在$name
变量下为zip取一个名称,然后在$filename
下指定完整路径,然后创建zip存档,然后调用createZip函数,该函数打开与zip同名的目录,然后将此目录下的文件添加到zip中,但是当我调用displayZip时('test')
然后打开创建的zip,我看到它在里面添加了文件/test/
文件夹。所以我的问题是:
addFile
行的$dir.$file
部分提前感谢默认情况下,
ZipArchive
会将文件夹添加到存档中。您可以通过在addFile()
中指定“localname”作为第二个参数来删除文件夹。该“localname”将是zip存档中的结构。有关详细信息,请参阅
rmdir可能无法工作,因为目录不是空的。非常感谢,它解决了我的问题!关于rmdir,您也是对的,我忘记了这个错误。。。