Файловый веб менеджер на основе технологии 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; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!