File size: 6.02Kb
<?php
// mod by Golem http://veplog.ru
require_once"../template/start.php";
require_once"../template/regglobals.php";
require_once"../template/config.php";
require_once"../template/functions.php";
require_once"../template/antidos.php";
require_once"../template/cookies.php";
require_once"../template/gzip.php";
require_once"../template/header.php";
require_once"../template/referer.php";
include_once"../themes/$config_themes/index.php";
include_once"../template/isset.php";
include_once"../template/pclzip.php";
$dir=check($_GET['dir']);
$arch=check($_GET['arch']);
$open=check($_GET['open']);
if(!eregi("[^a-z0-9_@+-]",$dir) && (!eregi("[^a-z0-9_@+.-]",$arch))){
echo '<div class=tp> <b>Просмотр архива</b></div>';
if($dir!="" && $arch!=""){
if (!$action){
$zip=new PclZip("$dir/$arch");
if (($list = $zip->listContent()) != 0){
sort($list);
$countlist = count($list);
$zfilename = array();
$zfilesize = array();
$zfolder = array();
for ($i=0; $i<$countlist; $i++){
$zfilename[]=$list[$i]['filename'];
$zfilesize[]=$list[$i]['size'];
$zfolder[]=$list[$i]['folder'];
}
$totalsize=array_sum($zfilesize);
$total = count($zfilename);
echo '<div class=tpanel><img src="../images/img/zip.gif" alt=""> <b>'.$arch.'</b><br>';
echo 'Всего файлов: '.$total.'<br>Вес распакованного архива: '.formatsize($totalsize).'</div>';
$start = (int)$_GET['start'];
if($start < 0 || $start > $total){$start = 0;}
if ($total < $start + $config_ziplist){ $end = $total; }
else {$end = $start + $config_ziplist; }
for ($i = $start; $i < $end; $i++){
$ext=strtolower(strrchr($zfilename[$i], "."));
switch($ext){
case 'dir': $ico='dir.gif'; break;
case '.jpg': case '.jpeg': $ico='jpg.gif'; break;
case '.gif': $ico='gif.gif'; break;
case '.mid': $ico='mid.gif'; break;
case '.mp3': $ico='mp3.gif'; break;
case '.wav': case '.amr': $ico='wav.gif'; break;
case '.mmf': $ico='mmf.gif'; break;
case '.jad': $ico='jad.gif'; break;
case '.jar': $ico='jar.gif'; break;
case '.zip': $ico='zip.gif'; break;
case '.txt': $ico='txt.gif'; break;
case '.exe': $ico='exe.gif'; break;
case '.htm': $ico='htm.gif'; break;
case '.html': $ico='htm.gif'; break;
case '.php': $ico='php.gif'; break;
default: $ico='file.gif'; break; }
if($zfolder[$i]=="1"){
$zfilename[$i]=substr($zfilename[$i],0,-1);
echo '<img src="../images/icons/dir.gif" alt=""> <b>Директория '.$zfilename[$i].'</b><br>';
}else{
echo'<div class=forum><div class=r0>';
echo '<img src="../images/icons/'.$ico.'" alt=""> <a href="zip.php?action=preview&dir='.$dir.'&arch='.$arch.'&open='.$zfilename[$i].'&start='.$start.'&'.SID.'">'.$zfilename[$i].'</a>';
echo ' ('.formatsize($zfilesize[$i]).')</div></div>';
}}
if ($start != 0) {echo '<a href="zip.php?start='.($start - $config_ziplist).'&dir='.$dir.'&arch='.$arch.'&'.SID.'"><пред.|</a> ';}else{echo'<пред.|';}
echo ' | ';
if ($total > $start + $config_ziplist) {echo ' <a href="zip.php?start='.($start + $config_ziplist).'&dir='.$dir.'&arch='.$arch.'&'.SID.'">след.></a>';}else{echo'след.>';}
if($total>0){
$ba=ceil($total/$config_ziplist);
$ba2=$ba*$config_ziplist-$config_ziplist;
echo '<br>Стр.:';
$asd=$start-($config_ziplist*3);
$asd2=$start+($config_ziplist*4);
if($asd<$total && $asd>0){echo ' <a href="zip.php?start=0&dir='.$dir.'&arch='.$arch.'&'.SID.'">1</a> ... ';}
for($i=$asd; $i<$asd2;){
if($i<$total && $i>=0){
$ii=floor(1+$i/$config_ziplist);
if ($start==$i) {
echo ' <b>('.$ii.')</b>';
} else {
echo ' <a href="zip.php?start='.$i.'&dir='.$dir.'&arch='.$arch.'&'.SID.'">'.$ii.'</a> ';
}}
$i=$i+$config_ziplist;}
if($asd2<$total){echo ' ... <a href="zip.php?start='.$ba2.'&dir='.$dir.'&arch='.$arch.'&'.SID.'">'.$ba.'</a>';}
}
}else{
echo '<br><img src="../images/img/error.gif" alt=""> <b>Невозможно открыть архив!</b><br>';
echo 'Ошибка: '.$zip->errorInfo(true);
}
echo'<br><div class="panel">- <a href="down.php?action=ob&did='.$dir.'&fid='.$arch.'&'.SID.'">Вернуться</a></div>';
}
////////////////////////////////// Просмотр файла ////////////////////////////////
if($action=="preview"){
$zip=new PclZip("$dir/$arch");
$content = $zip->extract(PCLZIP_OPT_BY_NAME, $open,PCLZIP_OPT_EXTRACT_AS_STRING);
$content = $content[0]['content'];
$preview = explode("\r\n",$content);
$count = count($preview);
$ext = strtolower(substr($open, strrpos($open, '.') + 1));
echo '<div class=tpanel><img src="../images/img/zip.gif" alt=""> <b>'.$arch.'</b><br>';
echo '<img src="../images/img/files.gif" alt=""> <b>'.$open.'</b><br>';
if ($ext!="gif" && $ext!="jpg" && $ext!="png"){
//---------------------- Файл ----------------------//
echo 'Всего строчек: '.(int)$count.'</div><div class=panel>';
if(is_utf($content)){echo highlight_code($content);}else{echo highlight_code(win_to_utf($content));}
}else{
//-------------------- Картинка --------------------//
if($create=="image"){
ob_end_clean();
ob_clean();
header('Content-Disposition: attachment; filename="image.'.$ext.'";');
if($ext=="jpg"){$ext="jpeg";}
header("Content-type: image/$ext");
header("Content-Length: ".strlen($content));
echo $content;
exit;
}
echo'<br><img src="zip.php?action=preview&dir='.$dir.'&arch='.$arch.'&open='.$open.'&create=image" alt="">';
//--------------------------------------------------//
}
echo'</div>- <a href="zip.php?start='.$start.'&dir='.$dir.'&arch='.$arch.'&'.SID.'">Вернуться</a><br>';
}
}else{header ("Location: index.php?".SID); exit;}
}else{header ("Location: index.php?".SID); exit;}
echo'<div class="btm">[<a href="down.php?did='.$dir.'&'.SID.'">В раздел</a>]<br>';
echo'[<a href="index.php?'.SID.'">К категориям</a>]<br>';
echo'[<a href="../index.php?'.SID.'">На главную</a>]</div>';
include_once"../themes/$config_themes/foot.php";
?>