Просмотр файла unzip.php

Размер файла: 2.12Kb
  1. <?php
  2. include 'system/func.php';
  3. include 'system/ftp_connect.php';
  4. $d=dir_url('/'.boff(prov($_GET['d'])));
  5. $title='Распаковка архива "'.basename($d).'"';
  6. include 'system/head.php';
  7. title($title);
  8. if(empty($d)){
  9. header('Location: /ftp.php');
  10. }else{
  11. ftp_pasv($serv,true);
  12. $res = ftp_size($serv,$d);
  13. if ($res == '-1'){
  14. header('Location: /ftp.php');
  15. }else{
  16. if(isset($_POST['ok'])){
  17. $put=prov($_POST['put']);
  18. if (!empty($put)){
  19. $put=dir_url('/'.$put.'/');
  20. }
  21. if (empty($put)){
  22. $err='Не введён путь для распаковки';
  23. }
  24. elseif (!preg_match('#^[A-z0-9_\-\/\.]+$#sU',$put)){
  25. $err='Обнаружены запрещённые символы. Разрешено: A-z0-9_-/.';
  26. }
  27. elseif (ftp_chdir($serv, $put) == false){
  28. $err='Директория по указаному пути не существует';
  29. }
  30. if (!empty($err)){
  31. err($err);
  32. }else{
  33. $fi=ftprename($d);
  34. if (ftp_get($serv, 'tmp/'.$savedir.'/'.$fi, $d, FTP_BINARY)) {
  35. $zip=new ZipArchive;
  36. $zip->open('tmp/'.$savedir.'/'.$fi);
  37. mkdir('tmp/'.$savedir.'/archive',0777);
  38. chmod('tmp/'.$savedir.'/archive',0777);
  39. if ($zip->extractTo('tmp/'.$savedir.'/archive') == false) {
  40. err('Не возможно распаковать архив ,возможно архив поврежден');
  41. } else {
  42. dircopy($serv, $_SERVER['DOCUMENT_ROOT'].'/tmp/'.$savedir.'/archive/', $put, $_SERVER['DOCUMENT_ROOT'].'/tmp/'.$savedir.'/archive/');
  43. echo '<div class="menu">Распаковка архива запущена!</div>';
  44. }
  45. $zip->close();
  46. deldir($_SERVER['DOCUMENT_ROOT'].'/tmp/'.$savedir.'/archive');
  47. unlink('tmp/'.$savedir.'/'.$fi);
  48. }else{
  49. err('Не удалось загрузить файл на сервер');
  50. }
  51. }
  52. }
  53. $value=dir_url('/'.verh2($d).'/');
  54. 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>';
  55. }
  56. }
  57. echo '<div class="menu">&laquo; <a href="/file.php?d='.bon($d).'">Назад</a></div>';
  58. ftp_close($serv);
  59. include 'system/foot.php';
  60. ?>