一开始使用php调用命令行来执行压缩,后来发现php有ZipArchive类库实现了文件的压缩与解压缩
//递归移动文件到当前目录
public function moveZipFiles($path,$aimpath) //把path里的所有文件夹里的文件都移动到path层
{
//rename("/tmp/tmp_file.txt", "/home/user/login/docs/my_file.txt");
$handler = opendir($path);
while (($filename = readdir($handler)) !== false)
{
if($filename != "." && $filename != "..") //务必使用!==,防止目录下出现类似文件名“0”等情况
{
if(is_dir($path.'/'.$filename)) //如果是目录,递归移动
{
$this->moveZipFiles($path.'/'.$filename,$aimpath); //yii的php递归需要加上$this
}
else //如果是文件,则移动到aimpath
{
rename($path.'/'.$filename, $aimpath.'/'.$filename);
}
}
}
closedir($handler);
}
//解压上传的bin文件的压缩包
public function unZip($zipPath,$path)
{
$f =new func();
$zip = new ZipArchive;
if($zip->open($zipPath)===TR