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

Размер файла: 7.37Kb
  1. <?php
  2. include 'system/func.php';
  3. include 'system/ftp_connect.php';
  4. switch($act){
  5. default:
  6. include 'system/head.php';
  7. title($title);
  8. $d=dir_url('/'.prov(boff($_GET['d'])).'/');
  9. ftp_pasv($serv,true);
  10. $lines = ftp_rawlist($serv, $d);
  11. if (ftp_chdir($serv, $d) == false){
  12. header('Location: /ftp.php');
  13. }else{
  14. if (!empty($d) && $d != '/') echo '<div class="menu"><a href="/ftp.php?d='.bon(verh($d)).'"><img src="/design/img/up.png" alt="up"></a> '.dir_url('/'.$d.'/').'</div>';
  15. echo '<div class="menu">';
  16. $cnt_dir=0;
  17. for ($i=0; $i<count($lines); $i++) {
  18. $name=preg_replace("~([^\s]*[\s]*){8}\s{1}(.*)~m","\\2",$lines[$i]);
  19. if ($name != '.' && $name != '..' && !preg_match('/->/i',$name)){
  20. $chm=preg_replace("~([^\s]*).*~m","\\1",$lines[$i]);
  21. if ($chm[0] != '-'){
  22. echo '<a href="/dir.php?d='.bon($d.''.$name).'"><img src="/design/img/dir.gif" alt="*"></a> <a href="/ftp.php?d='.bon(dir_url('/'.$d.'/'.$name.'/')).'">'.$name.'</a><br/>';
  23. $cnt_dir++;
  24. }
  25. }
  26. }
  27. $cnt_file=0;
  28. for($j=0; $j<count($lines); $j++){
  29. $name=preg_replace("~([^\s]*[\s]*){8}\s{1}(.*)~m","\\2",$lines[$j]);
  30. if ($name!="." && $name!=".." && !preg_match('/->/i',$name)){
  31. $size=preg_replace("~([^\s]*[\s]*){4}\s{1}([^\s]*)(.*)~m","\\2",$lines[$j]);
  32. $chm=preg_replace("~([^\s]*).*~m","\\1",$lines[$j]);
  33. if ($chm[0] == "-") {
  34. echo '<img src="/design/img/file.gif" alt="*"></a> <a href="file.php?d='.bon(dir_url('/'.$d.'/'.$name)).'">'.$name.'</a> '.sizer($size).'<br/>';
  35. $cnt_file++;
  36. }
  37. }
  38. }
  39. if ($cnt_dir == 0 && $cnt_file == 0){echo 'Папка пуста';}
  40. echo '</div>';
  41. echo '<div class="title">Папок: '.$cnt_dir.' / Файлов: '.$cnt_file.'</div>';
  42. echo '<div class="menu">Создать: <a href="/ftp.php?act=newfile&amp;d='.bon($d).'">файл</a> / <a href="/ftp.php?act=newdir&amp;d='.bon($d).'">папку</a><br/>
  43. <img src="/design/img/multi.gif" alt="*"></a> <a href="/change.php?d='.bon($d).'">Расширенный режим</a><br/>
  44. <img src="/design/img/file.gif" alt="*"></a> <a href="/ftp.php?act=upload&amp;d='.bon($d).'">Выгрузить файл</a><br/>
  45. <img src="/design/img/file.gif" alt="*"></a> <a href="/ftp.php?act=import&amp;d='.bon($d).'">Импортировать файл</a></div>';
  46. }
  47. echo '<div class="menu"><img src="/design/img/exit.png" alt="*"> <a href="/index.php?act=exit">Выйти с панели</a></div>';
  48. ftp_close($serv);
  49. break;
  50. case 'newdir':
  51. $title='Создание папки';
  52. include 'system/head.php';
  53. title($title);
  54. $d=dir_url('/'.boff(prov($_GET['d'])).'/');
  55. if(ftp_chdir($serv, $d) == false){
  56. header('Location: /ftp.php');
  57. }else{
  58. if (isset($_POST['ok'])){
  59. $name=prov($_POST['name']);
  60. if (empty($name)){$err='Не введено название';}
  61. elseif (!preg_match('/^[A-z0-9_\-\.]+$/ui',$name)){$err='Не верно введено название папки';}
  62. if (!empty($err)){
  63. err($err);
  64. }else{
  65. $dir=dir_url('/'.$d.'/'.$name.'/');
  66. if (ftp_mkdir($serv,$dir)) {
  67. header('Location: /ftp.php?d='.bon($d));
  68. } else {
  69. err('Не удалось создать папку');
  70. }
  71. }
  72. }
  73. echo '<div class="menu"><form method="post">Название (A-z0-9_-.):<br/><input type="text" name="name" value="yftp"><br/><input class="btn btn-default" type="submit" name="ok" value="Создать"></form></div>';
  74. }
  75. ftp_close($serv);
  76. break;
  77. case 'newfile':
  78. $title='Создание файла';
  79. include 'system/head.php';
  80. title($title);
  81. $d=dir_url('/'.boff(prov($_GET['d'])).'/');
  82. if (ftp_chdir($serv, $d) == false){
  83. header('Location: /ftp.php');
  84. }else{
  85. if (isset($_POST['ok'])){
  86. $name=prov($_POST['name']);
  87. if (empty($name)){
  88. $err='Не введено название файла';
  89. }
  90. elseif (!preg_match('/^[A-z0-9_\-\.]+$/ui',$name)){
  91. $err='Не верно введено название файла';
  92. }
  93. if (!empty($err)){
  94. err($err);
  95. }else{
  96. file_put_contents('tmp/'.$savedir.'/create.txt', $_POST['text'], 0664);
  97. $remote_file=dir_url('/'.$d.'/'.$name);
  98. if (ftp_put($serv, $remote_file, 'tmp/'.$savedir.'/create.txt', FTP_BINARY)) {
  99. unlink('tmp/'.$savedir.'/create.txt');
  100. header('Location: /ftp.php?d='.bon($d));
  101. } else {
  102. err('Не удалось создать файл');
  103. }
  104. }
  105. }
  106. $value='<?php
  107. // yFTP.Ru, Jesk
  108. ?>';
  109. echo '<div class="menu"><form method="post">Название (A-z0-9_-.):<br/><input type="text" name="name" value="yftp.php"><br/>Содержимое:<br/><textarea name="text" cols="80" rows="15" style="width: 93%">'.$value.'</textarea><br/><input class="btn btn-default" type="submit" name="ok" value="Создать"></form></div>';
  110. }
  111. ftp_close($serv);
  112. break;
  113. case 'import':
  114. $title='Импортирование файла';
  115. include 'system/head.php';
  116. title($title);
  117. $d=dir_url('/'.boff(prov($_GET['d'])).'/');
  118. if (ftp_chdir($serv, $d) == false){
  119. header('Location: /ftp.php');
  120. }else{
  121. if (isset($_POST['ok'])){
  122. $url=prov($_POST['url']);
  123. $path=pathinfo($url);
  124. if (empty($url) || $url == 'http://' || $url == 'https://'){
  125. $err='Не введён url файла';
  126. }
  127. elseif (!preg_match('#^(http|https)://(.*)$#sU',$url)){
  128. $err='Не верно введён адрес файла';
  129. }
  130. elseif (GetFileSize($url) > $maxupload){
  131. $err='Максимальный размер импортируемого файла '.sizer($maxupload);
  132. }
  133. elseif (!copy($url, 'tmp/'.$savedir.'/'.$path['basename'])){
  134. $err='Не удалось импортировать файл';
  135. }
  136. if (!empty($err)){
  137. err($err);
  138. }else{
  139. $remote_file=dir_url('/'.$d.'/'.$path['basename']);
  140. if (ftp_put($serv, $remote_file, 'tmp/'.$savedir.'/'.$path['basename'], FTP_BINARY)) {
  141. unlink('tmp/'.$savedir.'/'.$path['basename']);
  142. header('Location: /ftp.php?d='.bon($d));
  143. } else {
  144. err('Не удалось импортировать файл');
  145. }
  146. }
  147. }
  148. echo '<div class="menu"><form method="post">URL файла (max '.sizer($maxupload).'):<br/><input type="text" name="url" value="http://"><br/><input class="btn btn-default" type="submit" name="ok" value="Импортировать"></form></div>';
  149. }
  150. ftp_close($serv);
  151. break;
  152. case'upload':
  153. $title='Выгрузка файла';
  154. include 'system/head.php';
  155. title($title);
  156. $d=dir_url('/'.boff(prov($_GET['d'])).'/');
  157. if (ftp_chdir($serv, $d) == false){
  158. header('Location: /ftp.php');
  159. }else{
  160. if (isset($_POST['ok'])){
  161. if (empty($_FILES['file']['name'])){
  162. $err='Не выбран файл';
  163. }
  164. elseif ($_FILES['file']['size'] > $maxupload){
  165. $err='Максимальный размер выгружаемого файла '.sizer($maxupload);
  166. }
  167. elseif (!copy($_FILES['file']['tmp_name'], 'tmp/'.$savedir.'/'.$_FILES['file']['name'])){
  168. $err='Не удалось загрузить файл';
  169. }
  170. if (!empty($err)){
  171. err($err);
  172. }else{
  173. $remote_file=dir_url('/'.$d.'/'.$_FILES['file']['name']);
  174. $file='tmp/'.$savedir.'/'.$_FILES['file']['name'];
  175. if (ftp_put($serv, $remote_file, $file, FTP_BINARY)) {
  176. unlink($file);
  177. header('Location: /ftp.php?d='.bon($d));
  178. } else {
  179. err('Не удалось выгрузить файл на ftp сервер');
  180. include 'system/foot.php';
  181. exit();
  182. }
  183. }
  184. }
  185. echo '<div class="menu"><form method="post" enctype="multipart/form-data">Выберите файл (max '.sizer($maxupload).'):<br/><input type="file" name="file" style="width: 93%"><br/><input class="btn btn-default" type="submit" name="ok" value="Выгрузить"></form></div>';
  186. }
  187. ftp_close($serv);
  188. break;
  189. }
  190. if ($act){
  191. echo '<div class="menu">&laquo; <a href="/ftp.php?d='.prov($_GET['d']).'">Назад</a></div>';
  192. }
  193. include 'system/foot.php';
  194. ?>