Файл: ftp/ftp.php
Строк: 113
<?php
// ftp by jasis//
$title='FTP';
include'system/head.php';
include'system/func.php';
include'system/ftp_connect.php';
switch(@$act){
default:
@$d=prov($_GET['d']);
echo'<div><form action="ftp.php" method="get">';
echo'Переход:<br><input type="text" name="d" value="'.$d.'" size="18"> <input type="submit" value="»"></form></div><br>';
if(empty($d)){ $d='/'; $de=''; }else{ $de=$d; $d=$d.'/';}
if($d!="/") echo'<img src="img/back.png" alt="<"> <a href="ftp.php">В начало</a><br>
<img src="img/back.png" alt=".."> <a href="ftp.php?d='.verh($d).'">Вверх</a><br><br>';
ftp_pasv($serv,true);
$lines = ftp_rawlist($serv, "$d");
// закрытие соединения
ftp_close($serv);
if($lines==false){
echo'<div>Не верный путь</div>';
}else{
$couf=0; $coud=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)){
$size=preg_replace("~([^s]*[s]*){4}s{1}([^s]*)(.*)~m","\2",$lines[$i]);
$chm=preg_replace("~([^s]*).*~m","\1",$lines[$i]);
$nchm=dechm($chm);
if ($size<100) {$sz=$size."b";}
elseif ($size<1024) {$sz=str_replace(".",",",round($size/1024,1))."kb";}
elseif ($size<102400) {$sz=round($size/1024)."kb";}
else {$sz=str_replace(".",",",round($size/1024/1024,1))."mb";}
if ($chm[0]=="-") {
if($name==".htaccess") $nams='<span style="color: #ff0000;">'.$name.'</span>'; else $nams=$name;
echo '<a href="file.php?d='.$d.$name.'">'.$nams.'</a> ['.$nchm.'] '.$sz.' <br>';
$couf++;
}else{
if($d!="/") echo '<a href="dir.php?d='.$d.$name.'"><img src="img/dir.gif" alt="*"></a>'; else echo'<img src="img/dir.gif" alt="*">';
echo' <a href="ftp.php?d='.$d.$name.'">'.$name.'</a> ['.$nchm.'] '.$sz.' <br>';
$coud++;
}
}
}
if($couf == 0 && $coud == 0) echo'Папка пуста<br>';
echo'<div>Папок: '.$coud.' / Файлов: '.$couf.'</div>';
echo'<div class="i">Меню</div>';
if($d!="/"){
echo'
<a href="change.php?d='.$de.'">Multi-Выбор</a><br>
<a href="ftp.php?act=newdir&d='.$de.'">Создать папку</a><br>
<a href="ftp.php?act=newfile&d='.$de.'">Создать файл</a><br>
<a href="ftp.php?act=import&d='.$de.'">Скачать файл</a><br>
<a href="ftp.php?act=upload&d='.$de.'">Выгрузить файл</a><br>
';
}
}
echo'<a href="index.php?act=exit">Выйти с панели</a>';
break;
case'newdir':
@$d=prov($_GET['d']);
if(empty($d)){
echo error('Ошибка, нет нужных данных','ftp.php','Назад');
}else{
ftp_pasv($serv,true);
$lines = ftp_rawlist($serv, "$d");
if($lines==false){
echo error('Не верный путь','ftp.php','Назад');
}else{
if(isset($_GET['go']) && !empty($_POST['name'])){
if(preg_match('#[^a-zA-Z0-9_-]#ui',$_POST['name'])){
echo error('Обнаружены запрещенные символы','ftp.php?d='.$d,'Назад');
}else{
$dir=$d.'/'.$_POST['name'];
if (ftp_mkdir($serv,$dir)) {
echo error('Папка успешно создана','ftp.php?d='.$d,'Назад');
} else {
echo error('Не удалось создать папку','ftp.php?d='.$d,'Назад');
}
}
}else{
echo'<div><form action="ftp.php?go&act=newdir&d='.$d.'" method="post">';
echo'В название папки можна использовать (A-Za-z0-9_-):<br><input type="text" name="name" value="" size="18"> <input type="submit" value="Создать"></form></div><br>';
}
}
}
// закрытие соединения
ftp_close($serv);
break;
case'newfile':
@$d=prov($_GET['d']);
if(empty($d)){
echo error('Ошибка, нет нужных данных','ftp.php','Назад');
}else{
ftp_pasv($serv,true);
$lines = ftp_rawlist($serv, "$d");
if($lines==false){
echo error('Не верный путь','ftp.php','Назад');
}else{
if(isset($_GET['go']) && !empty($_POST['name'])){
if(preg_match('#[^a-zA-Z0-9_-.]#ui',$_POST['name'])){
echo error('Обнаружены запрещенные символы','ftp.php?d='.$d,'Назад');
}else{
file_put_contents('tmp/'.$savedir.'/'.$_POST['name'],'',0664);
$remote_file=$d.'/'.$_POST['name'];
$file='tmp/'.$savedir.'/'.$_POST['name'];
if (ftp_put($serv, $remote_file, $file, FTP_BINARY)) {
echo error('Файл успешно создан','ftp.php?d='.$d,'Назад');
} else {
echo error('Не удалось создать файл','ftp.php?d='.$d,'Назад');
}
@unlink('tmp/'.$savedir.'/'.$_POST['name']);
}
}else{
echo'<div><form action="ftp.php?go&act=newfile&d='.$d.'" method="post">';
echo'В название файла можна использовать (A-Za-z0-9_-):<br><input type="text" name="name" value="" size="18"> <input type="submit" value="Создать"></form></div><br>';
}
}
}
// закрытие соединения
ftp_close($serv);
break;
case'import':
@$d=prov($_GET['d']);
if(empty($d)){
echo error('Ошибка, нет нужных данных','ftp.php','Назад');
}else{
ftp_pasv($serv,true);
$lines = ftp_nlist($serv, "$d");
if($lines==false){
echo error('Не верный путь','ftp.php','Назад');
}else{
if(isset($_GET['go']) && !empty($_POST['url'])){
$url=prov($_POST['url']);
$path=pathinfo($url);
if(!copy($url,'tmp/'.$savedir.'/'.$path['basename'])){
echo error('Не удалось загрузить файл','ftp.php?d='.$d,'Назад');
}else{
$remote_file=$d.'/'.$path['basename'];
$file='tmp/'.$savedir.'/'.$path['basename'];
$size=round(filesize('tmp/'.$savedir.'/'.$path['basename'])/1024);
if (ftp_put($serv, $remote_file, $file, FTP_BINARY)) {
echo error('Файл размером '.$size.'kb успешно импортирован','ftp.php?d='.$d,'Назад');
} else {
echo error('Не удалось импортировать файл','ftp.php?d='.$d,'Назад');
}
unlink('tmp/'.$savedir.'/'.$path['basename']);
}
}else{
echo'<div><form action="ftp.php?go&act=import&d='.$d.'" method="post">';
echo'Введите адрес файла:<br><input type="text" name="url" value="" size="18"> <input type="submit" value="Импортировать"></form></div><br>';
}
}
}
// закрытие соединения
ftp_close($serv);
break;
case'upload':
@$d=prov($_GET['d']);
if(empty($d)){
echo error('Ошибка, нет нужных данных','ftp.php','Назад');
}else{
ftp_pasv($serv,true);
$lines = ftp_nlist($serv, "$d");
if($lines==false){
echo error('Не верный путь','ftp.php','Назад');
}else{
if(isset($_GET['go']) && !empty($_FILES['file'])){
if(is_uploaded_file($_FILES['file']['tmp_name'])){
if(isset($_FILES['file']['size'])){$fsize=round($_FILES['file']['size']/1024);}else{$fsize=0;}
$path=pathinfo($_FILES['file']['name']);
if($fsize>$maxupload){
echo error('Максимальный вес файла не может привышать '.$maxupload.'kb ','ftp.php?d='.$d,'Назад');
}else{
if(!copy($_FILES['file']['tmp_name'],'tmp/'.$savedir.'/'.$path['basename'])){
echo error('Не удалось загрузить файл','ftp.php?d='.$d,'Назад');
}else{
$remote_file=$d.'/'.$path['basename'];
$file='tmp/'.$savedir.'/'.$path['basename'];
if (ftp_put($serv, $remote_file, $file, FTP_BINARY)) {
echo error('Файл размером '.$fsize.'kb успешно загружен','ftp.php?d='.$d,'Назад');
} else {
echo error('Не удалось загрузить файл на ftp сервер','ftp.php?d='.$d,'Назад');
}
unlink('tmp/'.$savedir.'/'.$path['basename']);
}
}
}else{echo error('Не удалось загрузить файл на сервер','ftp.php?d='.$d,'Назад');}
}else{
echo'<div><form action="ftp.php?go&act=upload&d='.$d.'" method="post" enctype="multipart/form-data">';
echo'Выберите файл:<br><input type="file" name="file" size="18"> <input type="submit" value="Загрузить"></form></div><br>';
}
}
}
// закрытие соединения
ftp_close($serv);
break;
}
include'system/foot.php';
?>