Первая задача может решаться «в лоб» - записью в текстовый файл последовательности команд (тэгов) языка разметки 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;