- <?php
- include 'system/func.php';
- include 'system/ftp_connect.php';
- switch($act){
- default:
- include 'system/head.php';
- title($title);
- $d=dir_url('/'.prov(boff($_GET['d'])).'/');
- ftp_pasv($serv,true);
- $lines = ftp_rawlist($serv, $d);
- if (ftp_chdir($serv, $d) == false){
- header('Location: /ftp.php');
- }else{
- 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>';
- echo '<div class="menu">';
- $cnt_dir=0;
- for ($i=0; $i<count($lines); $i++) {
- $name=preg_replace("~([^\s]*[\s]*){8}\s{1}(.*)~m","\\2",$lines[$i]);
- if ($name != '.' && $name != '..' && !preg_match('/->/i',$name)){
- $chm=preg_replace("~([^\s]*).*~m","\\1",$lines[$i]);
- if ($chm[0] != '-'){
- 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/>';
- $cnt_dir++;
- }
- }
- }
- $cnt_file=0;
- for($j=0; $j<count($lines); $j++){
- $name=preg_replace("~([^\s]*[\s]*){8}\s{1}(.*)~m","\\2",$lines[$j]);
- if ($name!="." && $name!=".." && !preg_match('/->/i',$name)){
- $size=preg_replace("~([^\s]*[\s]*){4}\s{1}([^\s]*)(.*)~m","\\2",$lines[$j]);
- $chm=preg_replace("~([^\s]*).*~m","\\1",$lines[$j]);
- if ($chm[0] == "-") {
- echo '<img src="/design/img/file.gif" alt="*"></a> <a href="file.php?d='.bon(dir_url('/'.$d.'/'.$name)).'">'.$name.'</a> '.sizer($size).'<br/>';
- $cnt_file++;
- }
- }
- }
- if ($cnt_dir == 0 && $cnt_file == 0){echo 'Папка пуста';}
- echo '</div>';
- echo '<div class="title">Папок: '.$cnt_dir.' / Файлов: '.$cnt_file.'</div>';
- echo '<div class="menu">Создать: <a href="/ftp.php?act=newfile&d='.bon($d).'">файл</a> / <a href="/ftp.php?act=newdir&d='.bon($d).'">папку</a><br/>
- <img src="/design/img/multi.gif" alt="*"></a> <a href="/change.php?d='.bon($d).'">Расширенный режим</a><br/>
- <img src="/design/img/file.gif" alt="*"></a> <a href="/ftp.php?act=upload&d='.bon($d).'">Выгрузить файл</a><br/>
- <img src="/design/img/file.gif" alt="*"></a> <a href="/ftp.php?act=import&d='.bon($d).'">Импортировать файл</a></div>';
- }
- echo '<div class="menu"><img src="/design/img/exit.png" alt="*"> <a href="/index.php?act=exit">Выйти с панели</a></div>';
- ftp_close($serv);
- break;
- case 'newdir':
- $title='Создание папки';
- include 'system/head.php';
- title($title);
- $d=dir_url('/'.boff(prov($_GET['d'])).'/');
- if(ftp_chdir($serv, $d) == false){
- header('Location: /ftp.php');
- }else{
- if (isset($_POST['ok'])){
- $name=prov($_POST['name']);
- if (empty($name)){$err='Не введено название';}
- elseif (!preg_match('/^[A-z0-9_\-\.]+$/ui',$name)){$err='Не верно введено название папки';}
- if (!empty($err)){
- err($err);
- }else{
- $dir=dir_url('/'.$d.'/'.$name.'/');
- if (ftp_mkdir($serv,$dir)) {
- header('Location: /ftp.php?d='.bon($d));
- } else {
- err('Не удалось создать папку');
- }
- }
- }
- 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>';
- }
- ftp_close($serv);
- break;
- case 'newfile':
- $title='Создание файла';
- include 'system/head.php';
- title($title);
- $d=dir_url('/'.boff(prov($_GET['d'])).'/');
- if (ftp_chdir($serv, $d) == false){
- header('Location: /ftp.php');
- }else{
- if (isset($_POST['ok'])){
- $name=prov($_POST['name']);
- if (empty($name)){
- $err='Не введено название файла';
- }
- elseif (!preg_match('/^[A-z0-9_\-\.]+$/ui',$name)){
- $err='Не верно введено название файла';
- }
- if (!empty($err)){
- err($err);
- }else{
- file_put_contents('tmp/'.$savedir.'/create.txt', $_POST['text'], 0664);
- $remote_file=dir_url('/'.$d.'/'.$name);
- if (ftp_put($serv, $remote_file, 'tmp/'.$savedir.'/create.txt', FTP_BINARY)) {
- unlink('tmp/'.$savedir.'/create.txt');
- header('Location: /ftp.php?d='.bon($d));
- } else {
- err('Не удалось создать файл');
- }
- }
- }
- $value='<?php
- // yFTP.Ru, Jesk
- ?>';
- 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>';
- }
- ftp_close($serv);
- break;
- case 'import':
- $title='Импортирование файла';
- include 'system/head.php';
- title($title);
- $d=dir_url('/'.boff(prov($_GET['d'])).'/');
- if (ftp_chdir($serv, $d) == false){
- header('Location: /ftp.php');
- }else{
- if (isset($_POST['ok'])){
- $url=prov($_POST['url']);
- $path=pathinfo($url);
- if (empty($url) || $url == 'http://' || $url == 'https://'){
- $err='Не введён url файла';
- }
- elseif (!preg_match('#^(http|https)://(.*)$#sU',$url)){
- $err='Не верно введён адрес файла';
- }
- elseif (GetFileSize($url) > $maxupload){
- $err='Максимальный размер импортируемого файла '.sizer($maxupload);
- }
- elseif (!copy($url, 'tmp/'.$savedir.'/'.$path['basename'])){
- $err='Не удалось импортировать файл';
- }
- if (!empty($err)){
- err($err);
- }else{
- $remote_file=dir_url('/'.$d.'/'.$path['basename']);
- if (ftp_put($serv, $remote_file, 'tmp/'.$savedir.'/'.$path['basename'], FTP_BINARY)) {
- unlink('tmp/'.$savedir.'/'.$path['basename']);
- header('Location: /ftp.php?d='.bon($d));
- } else {
- err('Не удалось импортировать файл');
- }
- }
- }
- 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>';
- }
- ftp_close($serv);
- break;
- case'upload':
- $title='Выгрузка файла';
- include 'system/head.php';
- title($title);
- $d=dir_url('/'.boff(prov($_GET['d'])).'/');
- if (ftp_chdir($serv, $d) == false){
- header('Location: /ftp.php');
- }else{
- if (isset($_POST['ok'])){
- if (empty($_FILES['file']['name'])){
- $err='Не выбран файл';
- }
- elseif ($_FILES['file']['size'] > $maxupload){
- $err='Максимальный размер выгружаемого файла '.sizer($maxupload);
- }
- elseif (!copy($_FILES['file']['tmp_name'], 'tmp/'.$savedir.'/'.$_FILES['file']['name'])){
- $err='Не удалось загрузить файл';
- }
- if (!empty($err)){
- err($err);
- }else{
- $remote_file=dir_url('/'.$d.'/'.$_FILES['file']['name']);
- $file='tmp/'.$savedir.'/'.$_FILES['file']['name'];
- if (ftp_put($serv, $remote_file, $file, FTP_BINARY)) {
- unlink($file);
- header('Location: /ftp.php?d='.bon($d));
- } else {
- err('Не удалось выгрузить файл на ftp сервер');
- include 'system/foot.php';
- exit();
- }
- }
- }
- 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>';
- }
- ftp_close($serv);
- break;
- }
- if ($act){
- echo '<div class="menu">« <a href="/ftp.php?d='.prov($_GET['d']).'">Назад</a></div>';
- }
- include 'system/foot.php';
- ?>