Как отправить бинарные данные из CGI приложения?
Falk0ner, вс, 06/07/2008 - 15:35.
Не для кого не секрет, как просто можно получать данные различного типа из 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;
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;
Взято из http://forum.sources.ru
Отправить комментарий