русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Передача файлов по FTP


Дата добавления: 2014-02-04; просмотров: 924; Нарушение авторских прав


Работа с протоколом FTP

 

Первая задача может решаться «в лоб» - записью в текстовый файл последовательности команд (тэгов) языка разметки HTML. Передачу же файлов для публикации в Интернете проще всего делать по протоколу передачи файлов FTP(File Transfer Protocol). Для работы по протоколу FTP предназначен компонент NMFTP TMLзыка разметки овый файл последовательности пьютера., находящийся на закладке FastNet палитры компонентов.

Для передачи файла на Web-сервер по протоколу FTP необходимо знать:

- имя пользователя (login);

- пароль;

- имя каталога на сервере, в который будет помещен файл.

Все эти сведения можно получить у Интернет-провайдера.

Научимся программно передавать файл в Интернет. Разместим на форме компонент с именем FTP типа NMFTP, а также поля ввода для логина, пароля и каталога и список отправляемых файлов (Рис. 31.1).

 

Рис. 35.1 Форма для отправки файлов.

Сначала зададим начальные установки: имя сервера, логин и пароль, и попробуем установить соединение:

 

WITH FTP DO

BEGIN



// имя сервера

Host:=Trim(LabeledEdit1.Text);

// логин

UserID:=Trim(LabeledEdit2.Text);

// пароль

Password:=Trim(LabeledEdit3.Text);

TRY

Connect

except

MessageDlg('Ошибка при соединении с сервером', mtError,[mbOK],0);

exit

end

end;

 

В случае успеха можно начинать передачу. Создадим для этого отдельную процедуру:

 

PROCEDURE FTPSendFile(fn:STRING; dir:STRING);

 

// fn – имя отправляемого файла

// dir – каталог на сервере

 

VAR i,deep:BYTE;

 

FUNCTION FTPChangeDir(VAR f:TNMFTP;s:STRING):BYTE;

 

VAR p:BYTE;

cur:STRING;

 

BEGIN



Result:=1;

WHILE (s<>'') DO

BEGIN



p:=POS('\',s);

IF p>0 THEN

BEGIN



INC(Result);

cur:=COPY(s,1,p-1);

s:=COPY(s,p+1,LENGTH(s))

END

ELSE

BEGIN



cur:=s;

s:=''

END;

f.ChangeDir(cur);

END

END;

 

BEGIN



TRY

WITH form1.FTP DO

BEGIN



deep:=FTPChangeDir(form1.FTP,Trim(dir));

Upload(Trim(fn),ExtractFileName(Trim(fn)));

FOR i:=1 TO deep DO

ChangeDir('..')

END

EXCEPT

MessageDlg('Ошибка при передаче файла', mtError,[mbOK],0)

END

END;

 

 

Основной метод, обеспечивающий собственно передачу файла – Upload(локальное_имя_файла, имя_файла_на_сервере). Например:

 

FTP.Upload(‘C:\1.htm’,’1.htm’)

 

Так как в подавляющем большинстве случаев имя файла на сервере совпадает с локальным (нечего создавать лишнюю путаницу), то в рассматриваемом примере этот метод вызывается следующим образом:

 

Upload(Trim(fn),ExtractFileName(Trim(fn)));

 

А в какой каталог на сервере попадет файл? Для смены текущего каталога, в который записываются файлы, предназначен метод ChangeDir(имя_каталога). У него есть одна неприятная особенность: смена каталогов может производиться только пошагово, по одному каталогу за шаг. Например, чтобы перейти в каталог public_html/win/main, необходимо вызвать метод ChangeDir трижды:

 

FTP. ChangeDir(‘public_html’);

FTP. ChangeDir(‘win’);

FTP. ChangeDir(‘main’);

 

После выполнения данного метода указанный каталог остается текущим. Чтобы не запутаться при передаче файла в произвольный каталог, в программе использована функция

 

FTPChangeDir(VAR f:TNMFTP;s:STRING):BYTE;

 

На вход ей подается ссылка на компонент типа NMFTP и текстовая строка – имя каталога (вида public_html/win/main), а возвращает она число потребовавшихся вызовов метода ChangeDir. В функции переданная текстовая строка разделяется по символам-разделителям “\” и для каждого выделенного названия каталога выполняется метод ChangeDir. Возвращаемое же значение запоминается в переменную deep. Зачем? Чтобы при передаче следующего файла снова оказаться в исходной точке – корневом каталоге сервера. Для этого надо выполнить команду «перейди в каталог более высокого уровня» столько раз, сколько раз был выполнен метод ChangeDir. Для этого используется цикл:

 

FOR i:=1 TO deep DO

ChangeDir('..')




<== предыдущая лекция | следующая лекция ==>
Основы программирования для Интернет | Библиографический список


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.008 сек.