Размер файла: 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';
- ?>