File size: 2.12Kb
<?php
include 'system/func.php';
include 'system/ftp_connect.php';
$d=dir_url('/'.boff(prov($_GET['d'])));
$title='Распаковка архива "'.basename($d).'"';
include 'system/head.php';
title($title);
if(empty($d)){
header('Location: /ftp.php');
}else{
ftp_pasv($serv,true);
$res = ftp_size($serv,$d);
if ($res == '-1'){
header('Location: /ftp.php');
}else{
if(isset($_POST['ok'])){
$put=prov($_POST['put']);
if (!empty($put)){
$put=dir_url('/'.$put.'/');
}
if (empty($put)){
$err='Не введён путь для распаковки';
}
elseif (!preg_match('#^[A-z0-9_\-\/\.]+$#sU',$put)){
$err='Обнаружены запрещённые символы. Разрешено: A-z0-9_-/.';
}
elseif (ftp_chdir($serv, $put) == false){
$err='Директория по указаному пути не существует';
}
if (!empty($err)){
err($err);
}else{
$fi=ftprename($d);
if (ftp_get($serv, 'tmp/'.$savedir.'/'.$fi, $d, FTP_BINARY)) {
$zip=new ZipArchive;
$zip->open('tmp/'.$savedir.'/'.$fi);
mkdir('tmp/'.$savedir.'/archive',0777);
chmod('tmp/'.$savedir.'/archive',0777);
if ($zip->extractTo('tmp/'.$savedir.'/archive') == false) {
err('Не возможно распаковать архив ,возможно архив поврежден');
} else {
dircopy($serv, $_SERVER['DOCUMENT_ROOT'].'/tmp/'.$savedir.'/archive/', $put, $_SERVER['DOCUMENT_ROOT'].'/tmp/'.$savedir.'/archive/');
echo '<div class="menu">Распаковка архива запущена!</div>';
}
$zip->close();
deldir($_SERVER['DOCUMENT_ROOT'].'/tmp/'.$savedir.'/archive');
unlink('tmp/'.$savedir.'/'.$fi);
}else{
err('Не удалось загрузить файл на сервер');
}
}
}
$value=dir_url('/'.verh2($d).'/');
echo '<div class="menu"><form method="post">Куда распаковывать (A-z0-9_-/.):<br/><input type="text" name="put" value="'.$value.'"><br/><input type="submit" name="ok" value="Распаковать"></form></div>';
}
}
echo '<div class="menu">« <a href="/file.php?d='.bon($d).'">Назад</a></div>';
ftp_close($serv);
include 'system/foot.php';
?>