DELPHI FAQ: Как отправить бинарные данные из CGI приложения?


Как отправить бинарные данные из CGI приложения?
Previous  Home  Next


Не для кого не секрет, как просто можно получать данные различного типа из CGI приложения. Однако, иногда необходимо, чтобы данные сохранялись в виде файла с определённым именем, типа "Test.ZIP". Для этого необходимо добавить в заголовок HTTP пункт "Content-Disposition".
В Delphi для этого используется свойство CustomHeaders. В это TStrings свойство можно добавлять пункты в виде "name=value" - так как HTTP синтакс name:value здесь не используется.

Пример:

procedure
 TWebModule1.WebModule1CHECKSTATUSAction(Sender: TObject;
  Request: TWebRequest; Response: TWebResponse; var
 Handled: Boolean);
var
 s : TFileStream;
begin

  s := nil
;
  if
 request.query='download' then
  try

    response.Title := 'Download Test.ZIP'
;
    response.CustomHeaders.Add('Content-Disposition=filename=Test.zip'
);
    response.ContentType := 'application/zip'
;
    s := TFileStream.Create(fmOpenRead+fmShareDenyNone,'Test.zip'
);
    response.contentstream := s;
    response.sendresponse;
  finally

    s.Free;
  end
;
end
;

Взято с Исходников.ru http://www.sources.ru





DELPHI FAQ




EOMY TOP 100      Рейтинг@Mail.ru      Rambler's Top100