Файл: ftp/file.php
Строк: 130
<?php
// ftp by jasis//
$title='FTP';
include'system/func.php';
include'system/head.php';
include'system/ftp_connect.php';
switch(@$act){
default:
@$d=prov($_GET['d']);
if(empty($d)){
echo error('Ошибка, нет нужных данных','ftp.php','Назад');
}else{
ftp_pasv($serv,true);
$res = ftp_size($serv,$d);
if ($res != -1) {
$path=pathinfo(ftprename($d));
$rf=@$path['extension'];
if($rf == 'zip' || $rf == 'jar'){
echo'<a href="unzip.php?d='.$d.'">Распаковать</a><br>
<a href="zip.php?arh='.bon($d).'">Смотреть архив (zip)</a><br>';
}elseif($rf == 'rar'){
echo'<a href="rar.php?arh='.bon($d).'">Смотреть архив (rar)</a><br>';
}
if (($rf<>"jpg")&&($rf<>"jpeg")&&($rf<>"jpe")&&($rf<>"png")&&($rf<>"gif")&&($rf<>"bmp")&&($rf<>"dll")&&($rf<>"wav")&&($rf<>"mid")&&($rf<>"midi")&&($rf<>"mp3")&&($rf<>"mmf")&&($rf<>"psd")&&($rf<>"doc")&&($rf<>"pdf")&&($rf<>"zip")&&($rf<>"rar")&&($rf<>"jar")&&($rf<>"3gp")&&($rf<>"avi")&&($rf<>"mp4")&&($rf<>"class")&&($rf<>"tgz")&&($rf<>"gz")&&($rf<>"bz")&&($rf<>"gz2")&&($rf<>"bz2")&&($rf<>"tbz")&&($rf<>"tbz2")&&($rf<>"tgz2")&&($rf<>"tar")) {
echo'<a href="edit.php?d='.$d.'">Редактировать в блокноте</a><br>';
}
echo'<a href="file.php?act=inzip&d='.$d.'">Запаковать (zip)</a><br>
<a href="file.php?act=rename&d='.$d.'">Переименовать</a><br>
<a href="file.php?act=perenos&d='.$d.'">Переместить</a><br>
<a href="file.php?act=copy&d='.$d.'">Копировать</a><br>
<a href="file.php?act=del&d='.$d.'">Удалить</a><br>
<a href="file.php?act=iconv&d='.$d.'">Изменить кодировку</a><br>
<a href="file.php?act=chmod&d='.$d.'">Права доступа</a><br>
<a href="file.php?act=view&d='.$d.'">Смотреть код</a><br>
<a href="file.php?act=clear&d='.$d.'">Очистить</a><br>
';
}else{
echo error('Не верный путь','ftp.php','Назад');
}
}
// закрытие соединения
ftp_close($serv);
break;
case'iconv':
@$d=prov($_GET['d']);
if(empty($d)){
echo error('Ошибка, нет нужных данных','ftp.php','Назад');
}else{
ftp_pasv($serv,true);
$res = ftp_size($serv,$d);
if ($res != -1) {
if(isset($_GET['go']) && !empty($_POST['iz']) && !empty($_POST['v'])){
$v=prov($_POST['v']);
$iz=prov($_POST['iz']);
$fi=ftprename($d);
if (ftp_get($serv, 'tmp/'.$savedir.'/'.$fi, $d, FTP_BINARY)) {
$file=file('tmp/'.$savedir.'/'.$fi);
for($i=0; $i<count($file); $i++){
$f=fopen('tmp/'.$savedir.'/'.$fi.'-recode','a+');
$text=iconv($iz,$v,$file[$i]); fwrite($f,"$textrn");
}
if (ftp_put($serv, $d.'-recode', 'tmp/'.$savedir.'/'.$fi.'-recode', FTP_BINARY)) {
echo error('Файл успешно перекодирован','ftp.php?d='.verh2($d),'Назад');
} else {
echo error('Не удалось перекодировать файл','ftp.php?d='.verh2($d),'Назад');
}
} else {
echo error('Не удалось зугрузить файл на сервер','ftp.php?d='.verh2($d),'Назад');
}
@unlink('tmp/'.$savedir.'/'.$fi);
@unlink('tmp/'.$savedir.'/'.$fi.'-recode');
}else{
echo'<form action="file.php?go&act=iconv&d='.$d.'" method="post">
Из<br><input type="radio" value="UTF-8" name="iz">UTF-8<br>
<input type="radio" value="Windows-1251" name="iz" checked>Windows-1251<br>
<input type="radio" value="KOI8-U" name="iz">KOI8-U<br>В<br>
<input type="radio" value="UTF-8" name="v" checked>UTF-8<br>
<input type="radio" value="Windows-1251" name="v">Windows-1251<br>
<input type="radio" value="KOI8-U" name="v">KOI8-U<br>
<input type="submit" value="Перекодировать"/></form>
';
}
}else{
echo error('Не верный путь','ftp.php','Назад');
}
}
// закрытие соединения
ftp_close($serv);
break;
case'view':
@$d=prov($_GET['d']);
if(empty($d)){
echo error('Ошибка, нет нужных данных','ftp.php','Назад');
}else{
ftp_pasv($serv,true);
$res = ftp_size($serv,$d);
if ($res != -1) {
$fi=ftprename($d);
if (ftp_get($serv, 'tmp/'.$savedir.'/'.$fi, $d, FTP_BINARY)) {
$file=file_get_contents('tmp/'.$savedir.'/'.$fi);
if(!empty($file)) echo'<div>'.highlight_string($file,true).'</div>'; else echo'<div>Файл пуст</div>';
echo '<div><a href="ftp.php?d='.verh2($d).'">Назад</a></div>';
} else {
echo error('Не удалось зугрузить файл на сервер','ftp.php?d='.verh2($d),'Назад');
}
@unlink('tmp/'.$savedir.'/'.$fi);
}else{
echo error('Не верный путь','ftp.php','Назад');
}
}
// закрытие соединения
ftp_close($serv);
break;
case'chmod':
@$d=prov($_GET['d']);
if(empty($d)){
echo error('Ошибка, нет нужных данных','ftp.php','Назад');
}else{
ftp_pasv($serv,true);
$res = ftp_size($serv,$d);
if ($res != -1) {
if(isset($_GET['go']) && !empty($_POST['chmod'])){
if(preg_match('#[^0-9]#ui',$_POST['chmod'])){
echo error('Обнаружены запрещенные символы','ftp.php?d='.verh2($d),'Назад');
}else{
$chmd='CHMOD 0'.$_POST['chmod'].' '.$d;
if (ftp_site($serv,$chmd)){
echo error('Права доступа изменены','ftp.php?d='.verh2($d),'Назад');
} else {
echo error('Не удалось изменить права','ftp.php?d='.verh2($d),'Назад');
}
}
}else{
echo'<div><form action="file.php?go&act=chmod&d='.$d.'" method="post">';
echo'Введите нужные права доступа:<br>
<input type="radio" name="chmod" value="600"> 600<br>
<input type="radio" name="chmod" value="640"> 640<br>
<input type="radio" name="chmod" value="660"> 660<br>
<input type="radio" name="chmod" value="664" checked> 664<br>
<input type="radio" name="chmod" value="666"> 666<br>
<input type="submit" value="Изменить"></form></div><br>';
}
}else{
echo error('Не верный путь','ftp.php','Назад');
}
}
// закрытие соединения
ftp_close($serv);
break;
case'del':
@$d=prov($_GET['d']);
if(empty($d)){
echo error('Ошибка, нет нужных данных','ftp.php','Назад');
}else{
ftp_pasv($serv,true);
$res = ftp_size($serv,$d);
if ($res != -1) {
if(isset($_GET['go'])){
if (ftp_delete($serv,$d)){
echo error('Файл успешно удален','ftp.php?d='.verh2($d),'Назад');
} else {
echo error('Не удалось удалить файл','ftp.php?d='.verh2($d),'Назад');
}
}else{
echo'<div>Вы действительно хотите удалить этот файл?<br>
<a href="file.php?go&act=del&d='.$d.'">Да</a> <a href="ftp.php?d='.verh2($d).'">Нет</a></div>';
}
}else{
echo error('Не верный путь','ftp.php','Назад');
}
}
// закрытие соединения
ftp_close($serv);
break;
case'clear':
@$d=prov($_GET['d']);
if(empty($d)){
echo error('Ошибка, нет нужных данных','ftp.php','Назад');
}else{
ftp_pasv($serv,true);
$res = ftp_size($serv,$d);
if ($res != -1) {
if(isset($_GET['go'])){
$fi=ftprename($d);
file_put_contents('tmp/'.$savedir.'/'.$fi,'',0664);
if (ftp_put($serv, $d, 'tmp/'.$savedir.'/'.$fi, FTP_BINARY)){
echo error('Файл успешно очищен','ftp.php?d='.verh2($d),'Назад');
} else {
echo error('Не удалось очистить файл','ftp.php?d='.verh2($d),'Назад');
}
@unlink('tmp/'.$savedir.'/'.$fi);
}else{
echo'<div>Вы действительно хотите очистить этот файл?<br>
<a href="file.php?go&act=clear&d='.$d.'">Да</a> <a href="ftp.php?d='.verh2($d).'">Нет</a></div>';
}
}else{
echo error('Не верный путь','ftp.php','Назад');
}
}
// закрытие соединения
ftp_close($serv);
break;
case'rename':
@$d=prov($_GET['d']);
if(empty($d)){
echo error('Ошибка, нет нужных данных','ftp.php','Назад');
}else{
ftp_pasv($serv,true);
$res = ftp_size($serv,$d);
if ($res != -1) {
if(isset($_GET['go']) && !empty($_POST['name'])){
if(preg_match('#[^a-zA-Z0-9_-.]#ui',$_POST['name'])){
echo error('Обнаружены запрещенные символы','ftp.php?d='.verh2($d),'Назад');
}else{
$newdir=ftprename2($d).$_POST['name'];
if (ftp_rename($serv,$d,$newdir)) {
echo error('Файл успешно переименован','ftp.php?d='.verh2($d),'Назад');
} else {
echo error('Не удалось переименовать файл','ftp.php?d='.verh2($d),'Назад');
}
}
}else{
echo'<div><form action="file.php?go&act=rename&d='.$d.'" method="post">';
echo'В название файла можна использовать (A-Za-z0-9_-.):<br><input type="text" name="name" value="'.ftprename($d).'" size="18"> <input type="submit" value="Переименовать"></form></div><br>';
}
}else{
echo error('Не верный путь','ftp.php','Назад');
}
}
// закрытие соединения
ftp_close($serv);
break;
case'perenos':
@$d=prov($_GET['d']);
if(empty($d)){
echo error('Ошибка, нет нужных данных','ftp.php','Назад');
}else{
ftp_pasv($serv,true);
$res = ftp_size($serv,$d);
if ($res != -1) {
if(!empty($_GET['go']) && !empty($_GET['did'])){
if(preg_match('#[^a-zA-Z0-9_-/.]#ui',$_GET['did'])){
echo error('Обнаружены запрещенные символы','ftp.php?d='.verh2($d),'Назад');
}else{
$newdir=prov($_GET['did']).ftprename($d);
if (ftp_rename($serv,$d,$newdir)) {
echo error('Файл успешно перемещен','ftp.php?d='.verh2($d),'Назад');
} else {
echo error('Не удалось переместить файл','ftp.php?d='.verh2($d),'Назад');
}
}
}else{
if(empty($_GET['did'])) $di=''; else $di=prov($_GET['did']);
echo ftpall($serv,'file.php?act=perenos&d='.$d,$di);
}
}else{
echo error('Не верный путь','ftp.php','Назад');
}
}
break;
case'copy':
@$d=prov($_GET['d']);
if(empty($d)){
echo error('Ошибка, нет нужных данных','ftp.php','Назад');
}else{
ftp_pasv($serv,true);
$res = ftp_size($serv,$d);
if ($res != -1) {
if(!empty($_GET['go']) && !empty($_GET['did'])){
if(preg_match('#[^a-zA-Z0-9_-/.]#ui',$_GET['did'])){
echo error('Обнаружены запрещенные символы','ftp.php?d='.verh2($d),'Назад');
}else{
$fi=ftprename($d);
$newdir=prov($_GET['did']).$fi;
if (ftp_get($serv, 'tmp/'.$savedir.'/'.$fi, $d, FTP_BINARY)) {
if (ftp_put($serv, $newdir, 'tmp/'.$savedir.'/'.$fi, FTP_BINARY)) {
echo error('Файл успешно скопирован','ftp.php?d='.verh2($d),'Назад');
} else {
echo error('Не удалось скопировать файл','ftp.php?d='.verh2($d),'Назад');
}
} else {
echo error('Не удалось зугрузить файл на сервер','ftp.php?d='.verh2($d),'Назад');
}
@unlink('tmp/'.$savedir.'/'.$fi);
}
}else{
if(empty($_GET['did'])) $di=''; else $di=prov($_GET['did']);
echo ftpall($serv,'file.php?act=perenos&d='.$d,$di);
}
}else{
echo error('Не верный путь','ftp.php','Назад');
}
}
break;
case'inzip':
@$d=prov($_GET['d']);
if(empty($d)){
echo error('Ошибка, нет нужных данных','ftp.php','Назад');
}else{
ftp_pasv($serv,true);
$res = ftp_size($serv,$d);
if ($res != -1) {
if(@$_GET['go'] == 2 && !empty($_GET['did']) && !empty($_POST['name'])){
if(preg_match('#[^a-zA-Z0-9_-.]#ui',$_POST['name'])){
echo error('Обнаружены запрещенные символы','ftp.php?d='.verh2($d),'Назад');
}else{
$fi=ftprename($d);
@mkdir('tmp/'.$savedir.'/zipo',0777); @chmod('tmp/'.$savedir.'/zipo',0777);
if(ftp_get($serv,'tmp/'.$savedir.'/zipo/'.$fi,$d,FTP_BINARY)){
$did=prov($_GET['did']);
$na=prov($_POST['name']);
include_once('system/pclzip.php');
$zip=new PclZip('tmp/'.$savedir.'/'.$na.'.zip');
$cmm='Archive create by wap online ftp file manager '.$site.' (by jasis)';
if ($zip->create('tmp/'.$savedir.'/zipo/'.$fi,PCLZIP_OPT_REMOVE_ALL_PATH,PCLZIP_OPT_COMMENT,$cmm)<>0) {
@ftp_put($serv,$did.$na.'.zip','tmp/'.$savedir.'/'.$na.'.zip',FTP_BINARY);
echo error('Архив успешно создан','ftp.php?d='.verh2($d),'Назад');
}else{
echo error('Ошибка создания архива','ftp.php?d='.verh2($d),'Назад');
}
}else{
echo error('Ошибка загрузки файла на сервер','ftp.php?d='.verh2($d),'Назад');
}
@sdir('tmp/'.$savedir.'/zipo');
@unlink('tmp/'.$savedir.'/'.$fi);
}
}elseif(!isset($_POST['name']) && !isset($_GET['go'])){
if(empty($_GET['did'])) $di=''; else $di=prov($_GET['did']);
echo ftpall($serv,'file.php?act=inzip&d='.$d,$di);
}elseif(isset($_GET['did']) && @$_GET['go'] == 1){
$p=pathinfo(($d));
$ne=str_replace('.'.$p['extension'],'',$p['basename']);
echo'<div><form action="file.php?act=inzip&d='.$d.'&go=2&did='.prov($_GET['did']).'" method="post">';
echo'Введите имя архива (A-Za-z0-9_-.):<br><input type="text" name="name" value="'.$ne.'" size="18">.zip <input type="submit" value="Архивировать"></form></div><br>';
}
}else{
echo error('Не верный путь','ftp.php','Назад');
}
}
break;
}
echo'<div><a href="ftp.php?d='.verh2(prov($_GET['d'])).'">К папке</a></div>';
include'system/foot.php';
?>