Hallo,
ich habe einen kleinen HTTP-Server mit den
Indy's (Version 10):
Delphi-Quellcode:
procedure TForm1.IdHTTPServer1CommandGet(AContext: TIdContext;
ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
var
root: String;
begin
root := ExtractFilePath(ParamStr(0));
AResponseInfo.ContentStream := TFileStream.Create(root + ARequestInfo.Document, fmOpenRead);
end;
klappt soweit alles gut, nur möchte ich jetzt aber die angeforderte
HTML-Datei vor dem übermitteln bearbeiten, hierbei soll aber nicht die Datei auf der Platte verändert werden, da die Veränderung der Datei für diesen einen User bestimmt ist.
Daher dachte ich an folgendes:
Delphi-Quellcode:
procedure TForm1.IdHTTPServer1CommandGet(AContext: TIdContext;
ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
var
root :
String;
htmlfile: TStrings;
begin
root := ExtractFilePath(ParamStr(0));
htmlfile := TStringList.Create;
try
htmlfile.LoadFromFile(root + ARequestInfo.Document);
// <-- HTML-Code modifizieren -->
AResponseInfo.ContentText := htmlfile.Text;
finally
htmlfile.Free;
end;
end;
Bei dieser Variante gibt es aber Probleme mit Bilder etc.
Gibt es eine Möglichkeit den
HTML-Source vor dem senden zu bearbeiten oder
kann man bei der unteren Variante ein "Arbeitsverzeichniss" festlegen, so das
links und Bilder funktionieren ?
gruss