Сетевые технологии. Баканов В.М. - 49 стр.

UptoLike

Составители: 

- 49 -
end; { конец SendFullMsg }
Открытие и определение размера запрашиваемого файла осуществляется
процедурой OpenSendFile:
procedure TWbServe.OpenSendFile;
begin
{ установить флаг FileOpen в TRUE }
ibFileOpen := TRUE;
{ присвоить имя файла дескриптору файла }
AssignFile(TransferFile, isFileName);
{ выполнить сброс и открыть файл для считывания }
Reset(TransferFile);
{ Считать размер файла в переменную размеров файла }
ilFileSize := FileSize (TransferFile);
end; { конец OpenSendFile }
После открытия файла можно форматировать всю информацию о файле,
которую нужно отправить клиенту (функция FileSizeHeader выдает данные о
размере, а FileTypeHeaderо типе файла, FileHeader собирает эти данные вме-
сте):
function TWbServe.FileSizeHeader: String;
begin
{ Создать строку заголовка сообщения о размере файла }
FileSizeHeader := 'Content-Length: ' + IntToStr(ilFileSize) + #13#10;
end; { конец FileSizeHeader }
function TWbServe.FileTypeHeader: String;
var IsFileExt: String; IsFileType: String; liPosPeriod: Integer;
begin
{ Указать тип файла (по умолчанию это текст HTML) }
IsFileType := 'text/html';
{ Нати расширение в имени файла }
liPosPeriod := Pos(' .', isFileName);
if (liPosPeriod > 0) then
begin
{ Это файл типа .GIF или .JPEG ? На самом деле допустимых
типов файлов намного больше; в расширенную версию этой
функции следует включить их все }
IsFileExt := Copy(isFileName, (liPosPeriod + 1), 3) ;
if ((IsFileExt = 'gif') or (IsFileExt = 'GIF')) then { это GIF-файл }
IsFileType := 'image/gif';
if ((IsFileExt = 'jpg') or (IsFileExt = 'JPG')) then { это JPG-файл }
IsFileType := 'image/jpeg';
end; { конец SendFullMsg }

   Открытие и определение размера запрашиваемого файла осуществляется
процедурой OpenSendFile:

procedure TWbServe.OpenSendFile;
begin
{ установить флаг FileOpen в TRUE }
 ibFileOpen := TRUE;
{ присвоить имя файла дескриптору файла }
 AssignFile(TransferFile, isFileName);
{ выполнить сброс и открыть файл для считывания }
 Reset(TransferFile);
{ Считать размер файла в переменную размеров файла }
 ilFileSize := FileSize (TransferFile);
end; { конец OpenSendFile }

    После открытия файла можно форматировать всю информацию о файле,
которую нужно отправить клиенту (функция FileSizeHeader выдает данные о
размере, а FileTypeHeader – о типе файла, FileHeader собирает эти данные вме-
сте):

function TWbServe.FileSizeHeader: String;
begin
{ Создать строку заголовка сообщения о размере файла }
 FileSizeHeader := 'Content-Length: ' + IntToStr(ilFileSize) + #13#10;
end; { конец FileSizeHeader }

function TWbServe.FileTypeHeader: String;
var IsFileExt: String; IsFileType: String; liPosPeriod: Integer;
begin
{ Указать тип файла (по умолчанию это текст HTML) }
 IsFileType := 'text/html';
{ Нати расширение в имени файла }
 liPosPeriod := Pos(' .', isFileName);
 if (liPosPeriod > 0) then
 begin
{ Это файл типа .GIF или .JPEG ? На самом деле допустимых
 типов файлов намного больше; в расширенную версию этой
 функции следует включить их все }
 IsFileExt := Copy(isFileName, (liPosPeriod + 1), 3) ;
 if ((IsFileExt = 'gif') or (IsFileExt = 'GIF')) then { это GIF-файл }
  IsFileType := 'image/gif';
 if ((IsFileExt = 'jpg') or (IsFileExt = 'JPG')) then { это JPG-файл }
  IsFileType := 'image/jpeg';

                                            - 49 -