1. [图片] zip.jpg
2. [代码][PHP]代码
在线解压ZIP文件程序|www.ibtf.net if(!$_REQUEST["myaction"]):?>
elseif($_REQUEST["myaction"]=="dounzip"): if ($_POST['password'] != $password) die("输入的密码不正确,请重新输入。"); $path = '';$remove = ''; $name = u2g(trim($_REQUEST['zipfile'])); $unzippath = $_POST["todir"]?u2g(trim($_REQUEST['todir'],'/')).'/':'./'; if(file_exists($path.$name) && is_file($path.$name)){ $zip = new PclZip($path.$name); $result = $zip->extract($path.(('./' == $unzippath)?'':$unzippath), $remove); $data = array(); if($result){ $data['statusCode'] = 200; $list = $zip->listContent(); $fold = 0; $fil = 0; $tot_comp = 0; $tot_uncomp = 0; foreach($list as $key=>$val){if ($val['folder']=='1') {++$fold;}else{++$fil;$tot_comp += $val['compressed_size'];$tot_uncomp += $val['size'];}} G('_unzip_end'); $data['message'] = '解压目标文件: '.g2u($name).'
'; $data['message'] .= '解压文件详情:共'.$fold.' 个目录,'.$fil.' 个文件
'; $data['message'] .= '压缩文档大小:'.dealsize($tot_comp).'
'; $data['message'] .= '解压文档大小:'.dealsize($tot_uncomp).'
'; $data['message'] .= '解压总计耗时:'.G('_run_start','_run_end',6).' 秒
'; }else{ $data['statusCode'] = 300; $data['message'] .= '解压失败:'.$zip->errorInfo(true).'
'; $data['message'] .= '执行耗时:'.G('_run_start','_run_end',6).' 秒
'; } //exit(json_encode($data)); }else{ $data = array(); $data['statusCode'] = 300; $data['message'] = 'Sorry,未知错误,无法解压:'.$path.$name.'文件!'; //exit(json_encode($data)); }echo $data['message']; elseif($_REQUEST["myaction"]=="dozip"): if ($_POST['password'] != $password) die("输入的密码不正确,请重新输入。"); $data = array();$_REQUEST['type']=2; $endpath=explode("/",$_SERVER['PHP_SELF']);$endpath=$endpath[count($endpath)-2]; $file = $_REQUEST['todir']?u2g(trim($_REQUEST['todir'])):"../".$endpath; $fileend = $_REQUEST['todir']?'zip':$file; $zipname = u2g(trim($_REQUEST['toname'])); $path = dirname($file); $Zip = new PclZip($zipname); if(!file_exists($zipname) && $Zip->create($file,PCLZIP_OPT_REMOVE_PATH,$fileend)){ $data['statusCode'] = 200; $list = $Zip->listContent(); if($list){ $fold = 0; $fil = 0; $tot_comp = 0; $tot_uncomp = 0; foreach($list as $key=>$val){if ($val['folder']=='1') {++$fold;}else{++$fil;$tot_comp += $val['compressed_size'];$tot_uncomp += $val['size'];}} $data['message'] = '压缩目标文件: '.g2u($zipname).'
'; $data['message'] .= '压缩文件详情:共'.$fold.' 个目录,'.$fil.' 个文件
'; $data['message'] .= '压缩文档大小:'.dealsize($tot_comp).'
'; $data['message'] .= '解压文档大小:'.dealsize($tot_uncomp).'
'; $data['message'] .= '压缩执行耗时:'.G('_run_start','_run_end',6).' 秒
'; $data['message'] .= '压缩文件列表:
'; foreach($list as $key => $val){ if(10 > $key){$key = '00'.$key;}elseif(100 > $key){$key = '0'.$key;} $data['message'] .= ''.$key.'=>'.($val['folder']?'目录:':'文件:').g2u($val['filename']).'
'; } } }else{ $data['statusCode'] = 300; if(file_exists($zipname)){$error = $zipname.'已经存在!';}else{$error = $Zip->errorInfo(true);} $data['message'] = '压缩失败:'.$error.'
'; $data['message'] .= '执行耗时:'.G('_run_start','_run_end',6).' 秒
'; } echo $data['message']; endif; ?> = 900 ){ $size = round($size*100/1024)/100; $d++; }return $size.' '.$danwei[$d];} ?>










