Einzelnen Beitrag anzeigen

moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 

Re: IdHTTPServer - Wo liegen Bilder für Webseiten?

  Alt 5. Jul 2008, 08:39
Moin !

Ich habs nun hinbekommen.
Habe auch ne Vermutung woran es liegen könnte. Weiss aber nicht obs stimmt.

Bis jetzt habe ich immer das hier genutzt um die Webseite anzuzeigen:
Delphi-Quellcode:
    AResponseInfo.ContentText := HtmlForm;
    AResponseInfo.WriteContent;
HtmlForm war ein Funktion die einen String (=komplette Webseite) zurückgeliefert hat.

Das funktioniert auch halbwegs, aber scheinbar nur mit Text. Bei Bildern wirds komplizierter.

Gemerkt habe ich das, als ich mir die Eliza Demo von http://www.TeamCoherence.com geladen habe. Dort übergibt man den Content nicht als String, sondern als Dateistream:

Delphi-Quellcode:
  LFilename := ARequestInfo.Document;
  if (LFilename = '/') or (LFilename = '/Graphics') then begin
    LFilename := '/index.html';
  end;
  LPathname := FHTMLDir + LFilename;
  if FileExists(LPathname) then begin
    AResponseInfo.ContentStream := TFileStream.Create(LPathname, fmOpenRead + fmShareDenyWrite);
FHTMLDir ist dabei das Document Root.

Als ich das dann in der anderen Demo durchgesteppt habe ist mir aufgefallen, das die Bilder extra angefordert werden (was auch irgendwie logisch ist). Bei einer Webseite mit 2 Bildern schiebt er also 3x einen ContentStream zum Browser. Und da wurde mir auch klar warum das bei mir nicht klappt. Die Aufrufe für die Bilder mögen ja von der Webseite (bzw. dem Browser) gekommen sein, aber die Auswertung dazu fehlte, denn er hat immer nur seinen Content String retour geschickt. Und deswegen hat es mit dem FILE verlinkten Bild auch geklappt. Das hat sich der Browser dann am Webserver vorbei gesaugt.

Ich hoffe ich liege da nicht soo falsch mit meiner Vermutung. Jedenfalls habe ich nun auch Bilder in meiner Webseite
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat