Файловый веб менеджер на основе технологии Ajax
Основные возможности
Данный файловый веб менеджер предназначен для работы с файлами по сети, используя стандартные программы для просмотра интернет страниц, например Explorer или Firefox.
К основным возможностям программы относится:
- просмотр;
- редактирование;
- копирование;
- переименование;
- перенос;
- создание каталога;
- создание файла;
- удаление.
Принцип реализации программного кода
Файловый веб менеджер написанный на Ajax работает на стороне сервера, что требует наличия для его работы, сервер работающий с Php скриптами. Данная программа является кросс платформенной, что позволяет использовать её как на NT платформах, так и на Unix системах.
Основным языком программирования для написания данного менеджера, является Php.
Функция реализации просмотра файлов
<?
function copy_dir($src,$dst) //копирование каталога с поддерикториями
{
if(!file_exists($src)) return false; //если файла не существует, выходит из функции
if(is_file($src)) return @copy($src,$dst); //если файл производит его копирование и фозвращает результат копирования
$error=false;
if(!mkdir($dst)) $error=true; // создает требуемый каталог
$dh=@opendir($src); //открывает каталог, который необходимо скопировать
while(false!==($f=readdir($dh))) { // читает послеовательно содерживое каталога
if($f=='.' || $f=='..') continue; //перехрдит на следующую итерацию, если каталог . или ..
if(!copy_dir($src.'/'.$f,$dst.'/'.$f)) $error=true;
}
@closedir($dh);
return !$error;
}
function TryCopy($src,$dst,$name)
{
|
|
return copy_dir($src,$dst."/".$name);
}
function doView()
{
global $FS;
$fname=$FS.$_POST["data"]["fname"];
if (!file_exists($fname)) {echo "ViewAnswer(2);";return false;}
if (($text=@file_get_contents($fname))===false) echo "ViewAnswer(1);";
else {
$text=preg_replace("/\"/","\\\"",$text);
echo "text=\"".mysql_escape_string($text)."\"; ViewAnswer(0)";
}
}
doView();
?>
Функция реализации редактирования и создания файла
<?
function Save($name) // сохранение файла
{
if (!($f=@fopen($name,"w"))) return 1; //попытка открытия файла для записи
fputs($f,$_POST["data"]["text"]); // запись в файл
fclose($f); // закрытие файла
return 2;
}
function doEdit()
{
global $FS;
$saved=0;
$name=$FS.$_POST["data"]["name"];
if (@$_POST["data"]["save"]) $saved=Save($name);
if (!file_exists($name)) {echo "EditAnswer(1,$saved);";return false;}
if (($text=@file_get_contents($name))===false) echo "EditAnswer(1,$saved);";
else
echo "text=\"".mysql_escape_string($text)."\";EditAnswer(0,$saved);";
}
doEdit();
?>
Функция реализующая копирование
<?
function copy_dir($src,$dst) //копирование каталога
{
if(!file_exists($src)) return false; //выход из функции если копируемого файла/каталога не существует
if(is_file($src)) return @copy($src,$dst); // если необходимо скопировать файл, производим копирование и возвращаем результат копирования(ошибка или нет)
$error=false;
if(!mkdir($dst)) return false; //если не удалось создать каталог выходим их функции
$dh=@opendir($src); // открываем каталог для работы
|
|
while(false!==($f=readdir($dh))) { // цикл выполняется пока в каталоге не перебранный все файлы
if($f=='.' || $f=='..') continue; //если файл/каталог - . или .. переходим на следующую итерацию
if(!copy_dir($src.'/'.$f,$dst.'/'.$f)) $error=true; // вызываем эту же функцию, передав имя копируемого файла/каталога и имя результирующего каталога
}
@closedir($dh); //закрываем открытый каталог
return !$ error ;
}
function TryCopy($src,$dst,$name)
{
return copy_dir($src,$dst."/".$name); // вызываем функцию копирования
}
function doCopy()
{
global $FS;
$src=$FS.$_POST["data"]["source"]; // считываем исходное имя каталога / файла из данных , пришедших с сервера
$dst=$FS.$_POST["data"]["dst"]; //считываем каталог в который необходимо скопировать
$name=$_POST["data"]["name"]; //считываем нового имя источника копирования
if (!file_exists($dst)) {echo "CopyAnswer(3);";return false;}// проверяем существование каталога в который необходимо скопировать
if (!file_exists($src)) {echo "CopyAnswer(2);";return false;} // проверяем существование источника копирования
if (!TryCopy($src,$dst,$name)) echo "CopyAnswer(1);"; // выполняем копирование и возвращаем в качестве результата вызов
else echo "CopyAnswer(0)"; // функции с определенны статусом завершения копирования
}
doCopy();
?>
Дата добавления: 2019-07-15; просмотров: 97; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!