Воть)) <?php ///////////////////////////////////////////////////////////////// /////////////////////////php file browser///////////////////////// ///////////////coded by mamamot spec. for antichat.ru /////////////// //////////////////////////////2007////////////////////////////// //проверяем содержимое массива POST if(isset($_POST['do'])) { //записываем в файл после редактирования if($_POST['do']=="edit") { $fd=fopen($_POST['filename'], w); if(!$fd) exit("Ошибка!"); fwrite($fd, $_POST['content']); fclose($fd); echo "Редактирование успешно завершено!"; echo '<a href="'.$_SERVER['PHP_SELF'].'?do=browse&p='.$_POST['p'].'" >Вернуться</a>'; } //загружаем файл на сервер elseif($_POST['do']=="upload") { if(copy($_FILES['filename']['tmp_name'], $_POST['p']."/".$_FILES['filename']['name'])) { echo("Файл успешно загружен: <br />"); echo($_FILES['filename']['name']); echo '<br />'; echo '<a href="'.$_SERVER['PHP_SELF'].'?do=browse&p='.$_POST['p'].'" >Вернуться</a>'; } else { echo("Ошибка!<br />"); echo '<a href="'.$_SERVER['PHP_SELF'].'?do=browse&p='.$_POST['p'].'" >Вернуться</a>'; } } exit(); } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head> <title><? echo "php file browser"; if(isset($_GET['p'])) echo " - ".$_GET['p']; ?></title> <style type="text/css" > body { font-family: Verdana, Arial; font-size: 14px; background-color: #fcc; } tr.header { background-color: #ccf; font-family: Verdana, Arial; font-size: 14px; } tr.one { background-color: #cff; font-family: Verdana, Arial; font-size: 14px; } tr.two { background-color: #fc6; font-family: Verdana, Arial; font-size: 14px; } h2 { font-family: Verdana, Arial; font-size: 22px; color:#000; } </style> </head> <body> <?php //Удаление файла function delete_file($dir, $name) { if(!@unlink($dir."/".$name)) { echo "Доступ запрещен!"; } else { echo "Удалено успешно!"; } echo '<a href="'.$_SERVER['PHP_SELF'].'" >На главную</a>'; } //рекурсивное удаление папки function delete_dir($dir) { //открываем папку $dd=opendir($dir); //просматриваем все файлы $todo=true; while(($file = readdir($dd))) { //если файл - удаляем if(is_file("$dir/$file")) { if(!unlink("$dir/$file")) { exit("Ошибка-доступ запрещен!"); } } //если папка - вызываем рекурсивно функцию удаления elseif(is_dir("$dir/$file") && $file!='.' && $file!='..') { delete_dir("$dir/$file"); } } //закрываем папку closedir($dd); //удаляем саму уже пустую директорию rmdir($dir); echo "Успешно удалено!<br />"; echo '<a href="'.$_SERVER['PHP_SELF'].'" >На главную</a>'; } //вывод формы загрузки файла function upload_form() { echo '<h2>Загрузка файла в '.$_GET['p'].'</h2> <form method="post" enctype="multipart/form-data" > <input type="file" name="filename" /><br /> <input type="hidden" name="p" value="'; if(isset($_GET['p'])) { echo $_GET['p'].'" />'; } else { echo '." />'; } echo '<input type="hidden" name="do" value="upload" />'; echo '<input type="submit" value="Загрузить" />'; echo '</form>'; echo '<a href="'.$_SERVER['PHP_SELF'].'?do=browse&p='.$_GET['p'].'" >На главную</a>'; } //вывод информации о файле function file_info() { $query=$_GET['p']."/".$_GET['name']; echo "<h2>Информация о файле: $query</h2>"; echo "Размер: ".filesize($query)."<br />"; $type=filetype($query); echo "Тип: ".$type."<br />"; echo "Последнее изменение: ".date("d.m.Y G:i:s",filemtime($query))."<br />"; if($type=="file") { echo '<a href="'.$query.'" >Скачать/просмотреть</a><br />'; echo '<a href="'.$_SERVER['PHP_SELF'].'?do=delete_f&p='.$query.'" >Удалить файл</a><br />'; echo '<a href="'.$_SERVER['PHP_SELF'].'?do=edit&p='.$_GET['p'].'&name='.$_GET['name'].'" >Редактировать(текстовый режим)</a><br />'; } echo '<a href="'.$_SERVER['PHP_SELF'].'?do=browse&p='.$_GET['p'].'" >На главную</a>'; } //создание папки function makedir($query, $dirname) { $custom=$query."/".$dirname; if(!mkdir($custom,0700)) { echo "Ошибка создания каталога!"; } else { echo "Успешно создано!"; } echo '<a href="'.$_SERVER['PHP_SELF'].'?do=browse&p='.$query.'" >Вернуться</a>'; } //вывод формы редактирования файла function edit_file($dir, $name) { $query=$dir.'/'.$name; $fd=fopen($query, "r"); if($fd) { $buf=fread($fd, filesize($query)); fclose($fd); echo '<h2>Редактирование файла</h2>'; echo '<form method="POST" >'; echo '<textarea cols="100" rows="50" name="content" >'.$buf.'</textarea><br />'; echo '<input type="hidden" name="do" value="edit" />'; echo '<input type="hidden" name="p" value="'.$dir.'" />'; echo '<input type="hidden" name="filename" value="'.$dir.'/'.$name.'" />'; echo '<input type="submit" name="submit" value="Сохранить" />'; echo '</form>'; } else { echo 'Ошибка!'; } echo '<a href="'.$_SERVER['PHP_SELF'].'?do=browse&p='.$dir.'" >Вернуться</a>'; } //проверяем режим вывода if(!isset($_GET['do']) || $_GET['do']=="browse") { //основная функция - главное окно работы с файлами и папками if(!isset($_GET['p'])) { $dir = "."; echo "<h2>Корневая директория<h2>"; //получаем список файлов $dd=opendir("."); while(($file = readdir($dd)) !== false) { $filelist[]=$file; } closedir($dd); } else { echo "<h2>".$_GET['p']."</h2>"; $dir=$_GET['p']; //получаем список файлов $dd = opendir($dir); while(($file = readdir($dd)) !== false) { $filelist[]=$file; } closedir($dd); } //выводим данные в виде таблицы //выводим заголовок таблицы echo "<table>"; echo '<tr class="header">'; echo "<td>Имя</td>"; echo "<td>Размер</td>"; echo "<td>Тип файла</td>"; echo "<td>Последнее изменение</td>"; echo "<td>Удалить</td>"; echo "</tr>"; $one=true; foreach($filelist as $file) { $query=$dir."/".$file; //получаем тип файла $type=filetype($query); //задаем стиль строки для облегчения восприятия if($one) { echo '<tr class="one">'; } else { echo '<tr class="two">'; } $one=!$one; if($type=="dir") { echo '<td><a href="'.$_SERVER['PHP_SELF'].'?do=browse&p='.$query.'" >'.$file.'</a></td>'; } else { echo '<td><a href="'.$_SERVER['PHP_SELF'].'?do=fi&p='.$dir.'&name='.$file.'" >'.$file.'</a></td>'; } //выводим размер файла echo "<td>".filesize($query)."</td>"; echo "<td>".$type."</td>"; echo "<td>".date("d.m.Y G:i:s",filemtime($query))."</td>"; if($type=="file") { echo '<td><a href="'.$_SERVER['PHP_SELF'].'?do=delete_f&p='.$dir.'&name='.$file.'" >Удалить файл</a></td>'; } elseif($type=="dir") { echo '<td><a href="'.$_SERVER['PHP_SELF'].'?do=delete_d&p='.$query.'" >Удалить папку</a></td>'; } echo "</tr>"; } echo "</table>"; //после таблицы мы выводим дополнительные инструменты //создание папки echo '<p>'; echo 'Создание папки в текущей директории:<br />'; echo '<form method="GET" >'; echo '<input type="hidden" name="do" value="mkdir" />'; echo '<input type="hidden" name="p" value="'.$dir.'" />'; echo '<input type="text" name="name" value="Имя папки" />'; echo '<input type="submit" name="submit" value="submit" />'; echo '</form>'; echo '<p>'; //загрузка файла echo '<p>'; echo 'Загрузить файл'; echo '<form method="POST" enctype="multipart/form-data" >'; echo '<input type="hidden" name="do" value="upload" />'; echo '<input type="hidden" name="p" value="'.$dir.'" />'; echo '<input type="file" name="filename" /><br />'; echo '<input type="submit" name="submit" value="Загрузить" />'; echo '</form>'; } //информация о файле elseif($_GET['do']=="fi") { file_info(); } //удаление файла elseif($_GET['do']=="delete_f") { delete_file($_GET['p'],$_GET['name']); } //удаление папки elseif($_GET['do']=="delete_d") { delete_dir($_GET['p']); } //редактирование файла elseif($_GET['do']=="edit") { edit_file($_GET['p'],$_GET['name']); } elseif($_GET['do']=="mkdir") { makedir($_GET['p'],$_GET['name']); } ?> </body> </html>