- <?php
- include 'system/func.php';
- include 'system/ftp_connect.php';
- switch(@$act){
- default:
- $d=dir_url('/'.boff(prov($_GET['d'])));
- $title='Меню файла "'.basename($d).'"';
- include 'system/head.php';
- title($title);
- if(empty($d)){
- header('Location: /ftp.php');
- }else{
- ftp_pasv($serv,true);
- $res = ftp_size($serv,$d);
- if ($res == '-1') {
- header('Location: /ftp.php');
- }else{
- $path=pathinfo(ftprename($d));
- $rf=mb_strtolower($path['extension'],'UTF-8');
- echo '<div class="menu"><b>•</b> <a href="/file.php?act=loadfile&d='.bon($d).'">Скачать файл</a><br/>';
- if ($rf == 'zip'){
- echo '<b>•</b> <a href="/unzip.php?d='.bon($d).'">Распаковать архив</a><br/><b>•</b> <a href="/zip.php?arh='.bon($d).'">Просмотр архива</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 != 'tgz' && $rf != 'gz' && $rf != 'bz' && $rf != 'gz2' && $rf != 'bz2' && $rf != 'tbz' && $rf != 'tbz2' && $rf != 'tgz2' && $rf != 'tar' && $rf != '7z' && $rf != 'ico') {
- echo'<b>•</b> <a href="/notepad.php?d='.bon($d).'">Обычный редактор</a><br/><b>•</b> <a href="/edit.php?d='.bon($d).'">Редактировать в блокноте</a><br/><b>•</b> <a href="/file.php?act=inzip&d='.bon($d).'">Запаковать файл</a><br/>';
- }
- echo '<b>•</b> <a href="/file.php?act=iconv&d='.bon($d).'">Кодировка файла</a><br/><b>•</b> <a href="/file.php?act=copy&d='.bon($d).'">Копировать файл</a><br/><b>•</b> <a href="/file.php?act=rename&d='.bon($d).'">Переименовать</a><br/>';
- echo '<b>•</b> <a href="/file.php?act=perenos&d='.bon($d).'">Переместить</a><br/><b>•</b> <a href="/file.php?act=del&d='.bon($d).'">Удалить файл</a><br/><b>•</b> <a href="/file.php?act=clear&d='.bon($d).'">Очистить файл</a><br/>
- <b>•</b> <a href="/file.php?act=chmod&d='.bon($d).'">Права доступа</a><br/>
- <b>•</b> <a href="/file.php?act=view&d='.bon($d).'">Просмотр кода</a><br/><b>•</b> <a href="/file.php?act=info&d='.bon($d).'">Свойства</a></div>';
- echo '<div class="menu">« <a href="/ftp.php?d='.bon(verh2($d)).'">Назад</a></div>';
- }
- }
- ftp_close($serv);
- break;
- case 'loadfile':
- $d=boff(prov($_GET['d']));
- if (empty($d)){
- header('Location: /ftp.php');
- }else{
- $res=ftp_size($serv, $d);
- if ($res == '-1'){
- header('Location: /ftp.php');
- }else{
- if (ftp_get($serv, 'tmp/'.$savedir.'/'.basename($d), $d, FTP_BINARY)){
- header('Content-Type: mime/type');
- header('Content-Length: '.$res);
- header('Content-Disposition: attachment; filename='.basename($d));
- echo file_get_contents('tmp/'.$savedir.'/'.basename($d));
- unlink('tmp/'.$savedir.'/'.basename($d));
- exit();
- }else{
- header('Location: /file.php?d='.bon($d));
- }
- }
- }
- ftp_close($serv);
- break;
- case 'iconv':
- $d=dir_url('/'.boff(prov($_GET['d'])));
- $title='Кодировка файла "'.basename($d).'"';
- include 'system/head.php';
- title($title);
- if(empty($d)){
- header('Location: /ftp.php');
- }else{
- ftp_pasv($serv,true);
- $res = ftp_size($serv,$d);
- if ($res == '-1'){
- header('Location: /ftp.php');
- }else{
- if (isset($_POST['ok'])){
- $v=prov($_POST['v']);
- $iz=prov($_POST['iz']);
- $type=intval($_POST['type']);
- if (empty($v) || empty($iz)){
- $err='Не выбрана кодировка';
- }
- elseif (empty($type) || $type != '1' && $type != '2'){
- $err='Не выбран тип перекодировки';
- }
- elseif ($iz == $v){
- $err='Не возможно перекодировать из <b>'.$iz.'</b> в <b>'.$v.'</b>';
- }
- if (!empty($err)){
- err($err);
- }else{
- if (ftp_get($serv, 'tmp/'.$savedir.'/recode.txt', $d, FTP_BINARY)) {
- $file=file_get_contents('tmp/'.$savedir.'/recode.txt');
- $file=iconv($iz,$v,$file);
- file_put_contents('tmp/'.$savedir.'/recode.txt', $file);
- if (ftp_put($serv, $d.''.($type == '2'?'.ftp':''), 'tmp/'.$savedir.'/recode.txt', FTP_BINARY)) {
- echo '<div class="menu">Кодировка файла успешно изменена</div>';
- unlink('tmp/'.$savedir.'/recode.txt');
- } else {
- err('Не удалось перекодировать файл');
- }
- } else {
- err('Не удалось зугрузить файл на сервер');
- }
- }
- }
- echo '<div class="menu"><form method="post">Кодировка оригинала:<br/>
- <select name="iz"><option value="utf-8" selected="selected">utf-8</option><option value="windows-1251">windows-1251</option><option value="koi8-r">koi8-r</option><option value="cp866">cp866</option><option value="cp1251">cp1251</option><option value="iso-8859-1">iso-8859-1</option></select>
- <br/>Новая кодировка:<br/><select name="v"><option value="utf-8" selected="selected">utf-8</option><option value="windows-1251">windows-1251</option><option value="koi8-r">koi8-r</option><option value="cp866">cp866</option><option value="cp1251">cp1251</option><option value="iso-8859-1">iso-8859-1</option></select>
- <br/>Тип перекодировки:<br/><input type="radio" name="type" value="1" checked="checked"> Перезаписать файл<br/><input type="radio" name="type" value="2"> Сохранить в новый файл<b>.ftp</b><br/><input class="btn btn-default" type="submit" name="ok" value="Перекодировать"></form></div>';
- }
- }
- ftp_close($serv);
- break;
- case 'view':
- $d=dir_url('/'.boff(prov($_GET['d'])));
- $title='Код файла "'.basename($d).'"';
- include 'system/head.php';
- title($title);
- if(empty($d)){
- header('Location: /ftp.php');
- }else{
- ftp_pasv($serv,true);
- $res = ftp_size($serv,$d);
- if ($res == '-1'){
- header('Location: /ftp.php');
- }else{
- if (ftp_get($serv, 'tmp/'.$savedir.'/'.basename($d), $d, FTP_BINARY)) {
- $file=file_get_contents('tmp/'.$savedir.'/'.basename($d));
- if (empty($file)){
- err('Файл пуст');
- }else{
- $code=highlight_string($file, true);
- $code=preg_replace('#<code>(.*)</code>#sU','\1',$code);
- echo '<div class="menu">'.$code.'</div>';
- }
- unlink('tmp/'.$savedir.'/'.basename($d));
- } else {
- err('Не удалось зугрузить файл на сервер');
- }
- }
- }
- ftp_close($serv);
- break;
- case 'chmod':
- $d=dir_url('/'.boff(prov($_GET['d'])));
- $title='Права доступа файла "'.basename($d).'"';
- include 'system/head.php';
- title($title);
- if(empty($d)){
- header('Location: /ftp.php');
- }else{
- ftp_pasv($serv,true);
- $res = ftp_size($serv,$d);
- if ($res == '-1'){
- header('Location: /ftp.php');
- }else{
- if (isset($_POST['ok'])){
- $chmod=intval($_POST['chmod']);
- if (empty($chmod)){
- $err='Не введены права доступа';
- }
- elseif (!preg_match('#^[0-9]{3}+$#sU',$chmod) || !is_numeric($chmod) || strlen($chmod) != 3){
- $err='Права доступа введены не верно';
- }
- if (!empty($err)){
- err($err);
- }else{
- if (ftp_site($serv, 'CHMOD 0'.$chmod.' '.$d)){
- echo '<div class="menu">Права доступа успешно изменены</div>';
- } else {
- err('Не удалось изменить права доступа');
- }
- }
- }
- echo '<div class="menu"><form method="post">Права доступа (chmod):<br/><input type="text" name="chmod" value="'.chminf($serv, $d).'"><br/><input class="btn btn-default" type="submit" name="ok" value="Изменить"></form></div>';
- }
- }
- ftp_close($serv);
- break;
- case 'del':
- $d=dir_url('/'.boff(prov($_GET['d'])));
- $title='Удаление файла "'.basename($d).'"';
- include 'system/head.php';
- title($title);
- if(empty($d)){
- header('Location: /ftp.php');
- }else{
- ftp_pasv($serv,true);
- $res = ftp_size($serv,$d);
- if ($res == '-1'){
- header('Location: /ftp.php');
- }else{
- if (isset($_GET['ok'])){
- if (ftp_delete($serv,$d)){
- header('Location: /ftp.php?d='.bon(verh2($d)));
- } else {
- err('Не удалось удалить файл');
- }
- }else{
- echo '<div class="menu">Вы действительно хотите удалить данный файл?<br/><center><a href="/file.php?act=del&ok&d='.bon($d).'">Да</a> | <a href="/file.php?d='.bon($d).'">Нет</a></center></div>';
- }
- }
- }
- ftp_close($serv);
- break;
- case 'clear':
- $d=dir_url('/'.boff(prov($_GET['d'])));
- $title='Очистка файла "'.basename($d).'"';
- include 'system/head.php';
- title($title);
- if(empty($d)){
- header('Location: /ftp.php');
- }else{
- ftp_pasv($serv,true);
- $res = ftp_size($serv,$d);
- if ($res == '-1'){
- header('Location: /ftp.php');
- }else{
- if (isset($_GET['ok'])){
- $fi=ftprename($d);
- file_put_contents('tmp/'.$savedir.'/'.$fi,'',0664);
- if (ftp_put($serv, $d, 'tmp/'.$savedir.'/'.$fi, FTP_BINARY)){
- echo '<div class="menu">Файл успешно очищен</div>';
- unlink('tmp/'.$savedir.'/'.$fi);
- } else {
- err('Не удалось очистить файл');
- }
- }else{
- echo '<div class="menu">Вы действительно хотите очистить данный файл?<br/><center><a href="/file.php?act=clear&ok&d='.bon($d).'">Да</a> | <a href="/file.php?d='.bon($d).'">Нет</a></center></div>';
- }
- }
- }
- ftp_close($serv);
- break;
- case 'rename':
- $d=dir_url('/'.boff(prov($_GET['d'])));
- $title='Переименование файла "'.basename($d).'"';
- include 'system/head.php';
- title($title);
- if(empty($d)){
- header('Location: /ftp.php');
- }else{
- ftp_pasv($serv,true);
- $res = ftp_size($serv,$d);
- if ($res == '-1'){
- header('Location: /ftp.php');
- }else{
- if (isset($_POST['ok'])){
- $name=prov($_POST['name']);
- if (empty($name)){
- $err='Не введено название файла';
- }
- elseif (!preg_match('#^[A-z0-9_\-\.]+$#sU',$name)){
- $err='Обнаружены запрещённые символы. Разрешено: A-z0-9_-.';
- }
- if (!empty($err)){
- err($err);
- }else{
- $newdir=dir_url('/'.ftprename2($d).'/'.$name);
- if (ftp_rename($serv,$d,$newdir)) {
- header('Location: /ftp.php?d='.bon(verh2($d)));
- } else {
- err('Не удалось переименовать файл');
- }
- }
- }
- echo '<div class="menu"><form method="post">Название файла (A-z0-9_-.):<br/><input type="text" name="name" value="'.ftprename($d).'"><br/><input class="btn btn-default" type="submit" name="ok" value="Переименовать"></form></div>';
- }
- }
- ftp_close($serv);
- break;
- case 'perenos':
- $d=dir_url('/'.boff(prov($_GET['d'])));
- $title='Перемещение файла "'.basename($d).'"';
- include 'system/head.php';
- title($title);
- if (empty($d)){
- header('Location: /ftp.php');
- }else{
- ftp_pasv($serv,true);
- $res = ftp_size($serv,$d);
- if ($res == '-1'){
- header('Location: /ftp.php');
- }else{
- if (isset($_POST['ok'])){
- $put=prov($_POST['put']);
- if (!empty($put)){
- $put=dir_url('/'.$put.'/');
- $verh=dir_url('/'.verh2($d).'/');
- }
- if (empty($put)){
- $err='Не введён путь перемещения файла';
- }
- elseif (!preg_match('#^[A-z0-9_\-\/\.]+$#sU',$put)){
- $err='Обнаружены запрещённые символы. Разрешено: A-z0-9_-/.';
- }
- elseif ($put == $verh){
- $err='Данный файл и так находится в этой директории';
- }
- if (!empty($err)){
- err($err);
- }else{
- $newdir=dir_url('/'.$put.'/'.basename($d));
- if (ftp_rename($serv,$d,$newdir)) {
- header('Location: /ftp.php?d='.bon($put));
- } else {
- err('Не удалось переместить файл');
- }
- }
- }
- $value=dir_url('/'.verh2(verh2($d)).'/');
- echo '<div class="menu"><form method="post">Путь перемещения (A-z0-9_-/.):<br/><input type="text" name="put" value="'.$value.'"><br/><input class="btn btn-default" type="submit" name="ok" value="Переместить"></form></div>';
- }
- }
- ftp_close($serv);
- break;
- case 'copy':
- $d=dir_url('/'.boff(prov($_GET['d'])));
- $title='Копирование файла "'.basename($d).'"';
- include 'system/head.php';
- title($title);
- if(empty($d)){
- header('Location: /ftp.php');
- }else{
- ftp_pasv($serv,true);
- $res = ftp_size($serv,$d);
- if ($res == '-1'){
- header('Location: /ftp.php');
- }else{
- if (isset($_POST['ok'])){
- $put=prov($_POST['put']);
- if (!empty($put)){
- $put=dir_url('/'.$put.'/');
- $verh=dir_url('/'.verh2($d).'/');
- }
- if (empty($put)){
- $err='Не введён путь копирования';
- }
- elseif (!preg_match('#^[A-z0-9_\-\/\.]+$#sU',$put)){
- $err='Обнаружены запрещённые символы. Разрешено: A-z0-9_-/.';
- }
- elseif ($put == $verh){
- $err='Данный файл уже есть в этой директории';
- }
- if (!empty($err)){
- err($err);
- }else{
- $newdir=dir_url('/'.$put.'/'.basename($d));
- if (ftp_get($serv, 'tmp/'.$savedir.'/'.basename($d), $d, FTP_BINARY)) {
- if (ftp_put($serv, $newdir, 'tmp/'.$savedir.'/'.basename($d), FTP_BINARY)) {
- unlink('tmp/'.$savedir.'/'.basename($d));
- header('Location: /ftp.php?d='.bon($put));
- } else {
- err('Не удалось скопировать файл');
- }
- } else {
- err('Не удалось зугрузить файл на сервер');
- }
- }
- }
- $value=dir_url('/'.verh2(verh2($d)).'/');
- echo '<div class="menu"><form method="post">Путь копирования (A-z0-9_-/.):<br/><input type="text" name="put" value="'.$value.'"><br/><input class="btn btn-default" type="submit" name="ok" value="Копировать"></form></div>';
- }
- }
- ftp_close($serv);
- break;
- case 'inzip':
- $d=dir_url('/'.boff(prov($_GET['d'])));
- $title='Архивирование файла "'.basename($d).'"';
- include 'system/head.php';
- title($title);
- if(empty($d)){
- header('Location: /ftp.php');
- }else{
- ftp_pasv($serv,true);
- $res = ftp_size($serv,$d);
- if ($res == '-1'){
- header('Location: /ftp.php');
- }else{
- if (isset($_POST['ok'])){
- $name=prov($_POST['name']);
- if (empty($name)){
- $err='Не введено название архива';
- }
- elseif (!preg_match('#^[A-z0-9_\-\.]+$#sU',$name)){
- $err='Обнаружены запрещенные символы. Разрешено: A-z0-9_-.';
- }
- if (!empty($err)){
- err($err);
- }else{
- mkdir('tmp/'.$savedir.'/archive',0777);
- if (ftp_get($serv, 'tmp/'.$savedir.'/archive/'.basename($d), $d, FTP_BINARY)){
- include 'system/pclzip.php';
- $zip=new PclZip('tmp/'.$savedir.'/'.$name.'.zip');
- if ($zip->create('tmp/'.$savedir.'/archive/'.basename($d), PCLZIP_OPT_REMOVE_ALL_PATH) != false){
- ftp_put($serv, dir_url('/'.verh2($d).'/'.$name.'.zip'), 'tmp/'.$savedir.'/'.$name.'.zip',FTP_BINARY);
- unlink('tmp/'.$savedir.'/'.$name.'.zip');
- deldir('tmp/'.$savedir.'/archive');
- unlink('tmp/'.$savedir.'/'.basename($d));
- header('Location: /ftp.php?d='.bon(verh2($d)));
- }else{
- err('Ошибка создания архива');
- }
- }else{
- err('Ошибка загрузки файла на сервер');
- }
- }
- }
- $value=pathinfo($d);
- if ($value['basename'] != '.htaccess'){
- $value=str_replace('.'.$value['extension'],'',$value['basename']);
- }else{
- $value='htaccess';
- }
- echo '<div class="menu"><form method="post">Название архива (A-z0-9_-.):<br/><input type="text" name="name" value="'.$value.'">.zip<br/><input class="btn btn-default" type="submit" name="ok" value="Архивировать"></form></div>';
- }
- }
- ftp_close($serv);
- break;
- case 'info':
- $d=dir_url('/'.boff(prov($_GET['d'])));
- $title='Информация о файле "'.basename($d).'"';
- include 'system/head.php';
- title($title);
- if (empty($d)){
- header('Location: /ftp.php');
- }else{
- $res=ftp_size($serv, $d);
- if ($res == '-1'){
- header('Location: /ftp.php');
- }else{
- echo '<div class="menu">Название: '.basename($d).'<br/>Размер: '.sizer($res).'<br/>Права доступа: '.chminf($serv, $d).''.(dirinf($serv, $d, 'user') !=false?'<br/>Владелец: '.dirinf($serv, $d, 'user'):'').''.(dirinf($serv, $d, 'group') != false?'<br/>Группа: '.dirinf($serv, $d, 'group'):'').''.(dirinf($serv, $d, 'date') != false?'<br/>Дата создания: '.dirinf($serv, $d, 'date'):'').'</div>';
- }
- }
- ftp_close($serv);
- break;
- }
- if ($act){
- echo '<div class="menu">« <a href="/file.php?d='.prov($_GET['d']).'">Назад</a></div>';
- }
- include 'system/foot.php';
- ?>