View file ftp.php

File size: 7.37Kb
<?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&amp;d='.bon($d).'">файл</a> / <a href="/ftp.php?act=newdir&amp;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&amp;d='.bon($d).'">Выгрузить файл</a><br/>
<img src="/design/img/file.gif" alt="*"></a> <a href="/ftp.php?act=import&amp;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">&laquo; <a href="/ftp.php?d='.prov($_GET['d']).'">Назад</a></div>';
}
include 'system/foot.php';
?>