Delphi. Учимся на примерах - [38]

Шрифт
Интервал

>begin

> status1.Lines.Add('Подключено');

> //локальный ip-адрес

> status1Lines.Add('IP клиента: ' + ftp.LocalIP);

> //удаленный ip-адрес

> status1Lines.Add('IPсервера: ' + ftp.RemoteIP);

>end;


>procedure TForm1.ftpConnectionFailed(Sender: TObject);

>begin

> status1.Lines.Add('He удалось подключиться к серверу');

>end;


>procedure TForm1.ftpInvalidHost(var Handled: Boolean);

>begin

> status1.Lines.Add('Ошибка при подключении к серверу');

>end;


>procedure TForm1.ftpSuccess(Trans_Type: TCmdType);

>begin

> status1.Lines.Add('Успешно');

>end;


>procedure TForm1.ftpTransactionStart(Sender: TObject);

>begin

> status1.Lines.Add('Начало передачи данных');

>end;


>procedure TForm1.ftpTransactionStop(Sender: TObject);

>begin

> statusl.Lines.Add('Конец передачи данных');

>end;


>procedure TForm1.ftpAuthenticationFailed(var Handled: Boolean);

>begin

> status1.Lines.Add('Неверное имя или пароль');

>end;


>procedure TForm1.Button2Click(Sender: TObject);

>begin

> if ftp.Connected then//если соединен

>  ftp.Disconnect;//отключиться от сервера

>end;


>procedure TForm1.Button3Click(Sender: TObject);

>var

> i: integer;

> FName, temp: string; //для получения имени файла

>begin

> if not Open1.Execute then ShowMessage('Файл не выбран!')

> else begin

> //очищаем переменные, которые содержат имя файла

> temp:= '';

> FName:= '';

> //получаем имя файла

> for i: = Length(Open1.FileName) downto 1 do

> begin

>  if Open1.FileName[i] = '\' then break;

>  temp:= temp+ Open1.FileName[i];

> end;

> for i:=length(temp) downto 1 do

>  fname:= fname + temp[i];

>  ftp.Upload(Open1.FileName, FName); //загружаем файл

> end;

>end;


>procedure TForm1.FormDestroy(Sender: TObject) ;

>begin

> if ftp.Connected then ftp.Disconnect;

>end;


>procedure TForm1.Button5Click(Sender: TObject);

>begin

> ftp.ChangeDir(cd.Text); //изменяем каталог

>end;


>procedure TForm1.Button4Click(Sender : TObject);

>begin

> ftp.Delete(del.text); //удалить файл

>end;


>procedure TForm1.Button6Click(Sender: TObject);

>begin

> ftp.DoCommand(cmd.Text); //выполнение команды

>end;


>procedure TForm1.Button7Click(Sender: TObject);

>begin

> ftp.MakeDirectory(md.Text); //создать каталог

>end;


>procedure TForm1.Button8Click(Sender: TObject);

>begin

> ftp.RemoveDir(rd.Text); //удалить каталог

>end;


>procedure TForm1.Button9Click(Sender: TObject);

>begin

> //открытие диалогового окна сохранения файла

> if Save1.Execute

> then //скачиваем указанный файл

>  ftp.Download(download.Text, save1.FileName)

> else ShowMessage('File not saved!'); {если пользователь отказался сохранять файл}

>end;


>end.

⊚ Все файлы проекта и исполняемый файл рассмотренной программы находятся на прилагаемом к книге компакт-диске в папке Chapter_18.

Глава 19

Написание CGI-приложений

Постановка задачи

Разработать CGI-сценарий на Delphi. В качестве примера, при активации через форму сценарий будет выводить определенную фразу.

Разработка проекта

К удивлению некоторых программистов, в Delphi можно разрабатывать CGI-сценарии. Для примера, разработаем сценарий, при обращении к которому будет создаваться HTML-страница с текстом "Это мой первый CGI-сценарий".

Поскольку это будет не обычная выполняемая программа, то стандартный проект, который по умолчанию предлагает нам Delphi, не подходит. Выполните команду меню File→New→Other, в результате чего откроется диалоговое окно New Items (рис. 19.1).

Рис. 19.1. Диалоговое окно New Items

Выберите тип программы Console Application и нажмите кнопку OK. В появившемся окне сотрите весь текст и введите следующий код:

>program cgi_test;//название сценария

>{$APPTYPE CONSOLE}

>{$Е cgi}//расширение приложения будет .cgi

>begin

> //способ отображения – text/html

> WriteLn('Content-Type: text/html');

> WriteLn;

> WriteLn;

> WriteLn(''); //начало страницы

> WriteLn('');

> //заголовок

> WriteLn('Первый cgi-сценарий на Delphi');

> //кодировка и тип содержимого

> WriteLn('<МЕТА http-equiv="Content-Type" ' +

>   'content="text/html; charset=windows-1251">');

> WriteLn('');

> WriteLn('');

> WriteLn('

Это мой первый CGI-сценарий
'

  +''); //выводим текст большими жирными буквами

> WriteLn('');

> WriteLn('');

>end.

Откомпилируйте приложение и присвойте ему имя cgi_test.cgi. Этот CGI-сценарий при обращении к нему создает страницу с заголовком "Первый cgi-сценарий на Delphi" и большим текстом на странице: "Это мой первый CGI-сценарий".

Теперь необходимо создать Web-страницу, которая будет обращаться к этому сценарию. Создайте файл с расширением .html следующего содержимого:

>

>

><ТIТLE>Первый cgi-сценарий на Delphi

>

>

>

>

><р>Также вы можете выполнять сценарии, просто делая на них

>ссылку: ссылка на cgi-сценарий

>

>

Это форма с кнопкой, которая активизирует CGI-сценарий (рис. 19.2).

Рис. 19.2. Web-страница для вызова CGI-сценария

Для того чтобы протестировать сценарий, необходимо переписать рассмотренные выше файлы на сервер с поддержкой CGI или установить и настроить собственный Web-сервер (например, Apache). Открыв показанную Web-страницу, следует нажать кнопку Выполнить или щелкнуть мышью на ссылке.


Рекомендуем почитать
Графика DirectX в Delphi

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Вторая жизнь старых компьютеров

Сейчас во многих школах, институтах и других учебных заведениях можно встретить компьютеры старого парка, уже отслужившие свое как морально, так и физически. На таких компьютерах можно изучать разве что Dos, что далеко от реалий сегодняшнего дня. К тому же у большинства, как правило, жесткий диск уже в нерабочем состоянии. Но и выбросить жалко, а новых никто не дает. Различные спонсоры, меценаты, бывает, подарят компьютер (один) и радуются, как дети. Спасибо, конечно, большое, но проблемы, как вы понимаете, этот компьютер в общем не решает, даже наоборот, усугубляет, работать на старых уже как-то не хочется, теперь просто есть с чем сравнивать.


DirectX 8. Начинаем работу с DirectX Graphics

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Симуляция частичной специализации

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Обработка событий в С++

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Питон — модули, пакеты, классы, экземпляры

Python - объектно-ориентированный язык сверхвысокого уровня. Python, в отличии от Java, не требует исключительно объектной ориентированности, но классы в Python так просто изучить и так удобно использовать, что даже новые и неискушенные пользователи быстро переходят на ОО-подход.