48547 (Разработка веб файлового менеджера с использованием технологии Ajax), страница 2
Описание файла
Документ из архива "Разработка веб файлового менеджера с использованием технологии Ajax", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "курсовые/домашние работы", в предмете "информатика, программирование" в общих файлах.
Онлайн просмотр документа "48547"
Текст 2 страницы из документа "48547"
Таблица 2.1. Базовые технологии Ajax
JavaScript | Это язык сценариев общего назначения, предназначенный для включения кода в Web-приложение. Интерпретатор JavaScript в составе Web-браузера обеспечивает взаимодействие со встроенными средствами браузера. Данный язык используется для создания Ajax-приложений |
CSS (Cascading Style Sheets) | CSS предоставляет возможность определять стили элементов Web-страницы. С помощью данной технологии можно без труда обеспечить согласованность внешнего вида компонентов приложения. В Ajax CSS используется для изменения представления интерфейса в процессе интерактивного взаимодействия |
DOM (Document Object Model) | DOM представляет структуру Web-страницы в виде набора объектов, которые можно обрабатывать средствами JavaScript. Это дает возможность изменять внешний вид интерфейса Ajax-приложения в процессе работы |
Объект XMLHttpRequest | Объект XMLHttpRequest позволяет программисту получать данные с Web-сервера в фоновом режиме. Как правило, возвращаемая информация предоставляется в формате XML, но данный объект позволяет также работать с любыми текстовыми данными |
Очень важно, что средства поддержки всех рассматриваемых здесь технологий уже присутствуют в большинстве современных браузеров, включая Microsoft Internet Explorer, семейство Mozilla/Gecko, Firefox, Mozilla Suite, Netscape Navigator, Camino, Opera, Apple Safari и Konqueror (который ориентирован на выполнение в среде Unix KDE). К сожалению, конкретные реализации этих технологий в разных браузерах различаются рядом важных деталей, более того, различия встречаются даже в разных версиях одного продукта. Правда, за последние пять лет положение дел несколько улучшилось, и разработаны способы, позволяющие справиться с несовместимостью браузеров.
В составе каждой современной операционной системы имеется браузер. Таким образом, подавляющее большинство настольных и портативных компьютеров уже готово для запуска Ajax-приложений. Разработчики программ на базе Java или .NET могут лишь мечтать об этом. Браузеры для КПК и мобильных телефонов обычно имеют усеченный набор возможностей и не поддерживают полный набор Ajax-технологий. Следует заметить, что если бы средства поддержки Ajax и имелись в наличии, все равно размеры экрана и особенности ввода данных создавали бы существенные проблемы при работе с Ajax-приложениями. На сегодняшний день инфраструктура Ajax ориентирована лишь на настольные и портативные компьютеры.
Файловый веб менеджер на основе технологии 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();
?>
Функция реализующая перенос и переименование.
function TryRename($old,$new)
{
return @rename($old,$new);//перемименование каталога/фалйа
}
function doRename()
{
global $FS;
$old=$FS.$_POST["data"]["oldname"];
$new=$FS.$_POST["data"]["newname"];
if (!file_exists($old)) {echo "RenameAnswer(2);";return false;}
if (!TryRename($old,$new)) echo "RenameAnswer(1);";
else echo "RenameAnswer(0)";
}
doRename();
?>
Функция реализующая создание каталога
function doCreate()
{
global $FS;
$src=$FS.$_POST["data"]["dir"];
$name=$_POST["data"]["name"];
if (!file_exists($src)) {echo "CreateDirAnswer(2);";return false;} //проверяет существование файла/каталога с таким же именем
if (!@mkdir($src."/".$name)) echo "CreateDirAnswer(1);"; //создает каталог
else echo "CreateDirAnswer(0)";
}
doCreate();
?>
Функция для удаления каталога или файла
function del_dir ($path)
{
$dir = @opendir($path);//открытие каталога
while(($fname = readdir($dir))){ // цикл, осуществляющий проссмотр содержимого файла
if (($fname==".") or($fname=="..")) continue;//переход на следующую итерацию, если имя файла/каталога - . или ..
if ( is_file ($path."/".$fname)) @unlink ($path."/".$fname);//если просмотриваемый элемент - файл, удаляем его
else if (!del_dir ($path."/".$fname)) return false; //если просмотриваемый элемент - каталог,вызываем эту же функцию
}
return @rmdir($path);//удаляем каталог и возвращаем результат удаления
}
function TryDelete($path)
{
if (is_dir($path)) return del_dir($path);
else return @unlink($path);
}
global $FS;
$path=$FS.$_POST["data"]["delname"];
if (!file_exists($path)) echo "DeleteAnswer(2);";
if (!TryDelete($path)) echo "DeleteAnswer(1);";
else echo "DeleteAnswer(0)";
?>
Заключение
Я считаю что выполнил основное назначение работы.В ходе проделанной работы я получили представление о технологии Ajax , наглядно продемонстрировал её возможности и преимущества по сравнению с другими технологиями.
При проектировании своего веб менеджера, я изучил возможности серверных программ поддерживающих работу с Php скриптами, возможности языка программирования Php и Java скриптов.
16