Kann jemand irgendein Fehler bei der Funktion HtServeFile entdecken? Ich glaube, dass diese Funktion die Ursache ist, weil die gesperrten Dateien sonst nirgendwo geöffnet werden.
Code: Alles auswählen
procedure TMyHTTPServer.HandleRequest(var ARequest: TFPHTTPConnectionRequest; var AResponse: TFPHTTPConnectionResponse);
procedure HtServeFile(AFName:string);
var F : TFileStream;
begin
F:=nil;
try
F:=TFileStream.Create(AFName,fmOpenRead);
AResponse.Code:=200;
AResponse.ProtocolVersion:='HTTP/1.1';
AResponse.ContentType:=MimeTypes.GetMimeType(aFileExt); //aFileExt wird schon richtig gesetzt.
AResponse.ContentLength:=F.Size;
AResponse.ContentStream:=F;
AResponse.SendContent;
AResponse.ContentStream:=Nil;
except
on E: Exception do begin
if DebLog then SendDebugEx('Error on file serve: '+E.Message,dlError);
HtServeFileNotFound(aFileName); //Fehlermeldung anzeigen
end;
end;
if Assigned(F) then F.Free;
end;
begin
HtServeFile('c:\html\Beispieldatei.html');
end;