该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
如何解压zip文件?
我的思路是这样的:解压文件就是将这个压缩文件夹里的文件取出来,放到指定的地方,而这个过程就是相当但是于将这个文件夹里的文件copy到指定地方。
上代码[code=php]<?php
$dezip=new ZipArchive();//创建ziparchive对象
if(($dezip->open("orzzzzzz.zip"))!=false){//打开压缩文件,若成功打开,执行下述操作,否则输出警告
if(!is_dir("dedir")){//判断有无目标目录
mkdir("dedir",0777);
}
for($i=0;$inumFiles);$i++){//因为dezip文件打开了这个文件,那么dezip这个对象里的方法啊属性啊都为这个文件所用,所以numfiles返回打开的文件里的文件的数目(包括目录)
$filename="orzzzzzz.zip/".$dezip->getNameIndex($i);//为了取得压缩文件里的文件名而建,也为了递归
$path=$dezip->getNameIndex($i);//为了创建目录而建
if(is_dir($filename)){//判断取得的文件是否还是目录
$mcdir="dedir/".$path;//为了递归的实现
mkdir($mcdir,0777);//如果还是目录则继续相应的目标目录创建
opdir($filename,$mcdir);//递归实现非目录文件转移
}
else{
echo $filename;
echo "dedir/".$path;
};
copy($filename,"dedir/".$path)or die("复制失败!");//如果不是目录则复制该文件到目标目录
}
}
else{
echo "打开zip文件错误!";
}
$dezip->close();[/code]
它提示我错误:Warning: copy(orzzzzzz.zip/CESHI.TXT): failed to open stream: No such file or directory in C:\phpweb\Apache24\htdocs\test1.php on line 34复制失败!
也就是在这一行:copy($filename,"dedir/".$path)or die("复制失败!");
但是我调试输出了$filename和"dedir/".$path,他们的路径都没问题。
然后我有测试了非zip文件能不能复制到指定目录里 ,可以!
我就猜是不是copy这个函数不能取zip文件夹里面文件,各位同仁帮我看看呗!
感激感激!!