Файл Мениджър
Това е един Файл Мениджър с който можете да редактирате, качвате файлове и да създавате нови папки. Няма защити с username или password. Демо ще кача утре сутринта, всичко е обяснено в коментарите по урока. Дано да ви е от полза. Урока е подготвен спецално за Web-Tourist и преписването му е забранено.



<?php

//проверяваме 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>";
//получаваме списъка със файлове
$filelist = scandir(".");
}
else
{
echo "<h2>".$_GET['p']."</h2>";
$dir=$_GET['p'];
//получаваме списъка със файлове
$filelist = scandir("./".$_GET['p']);
}
//извеждаме данните във вид на таблица

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="Създай" />';
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>



/ Трябва да сте регистриран за да напишете коментар /
От: noname_dark
18:21 30-05-2010
Ееее, дай 1 демо
От: noname_dark
18:25 30-05-2010
Въъъйй брат, спази ми живота
1