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];}
?>