Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi idHTTP Server : HTML anzeigen mit Bildern (https://www.delphipraxis.net/50102-idhttp-server-html-anzeigen-mit-bildern.html)

Assun 20. Jul 2005 17:42


idHTTP Server : HTML anzeigen mit Bildern
 
Hi !

nehmen wir an, ich habe im bin Verzeichnis meines HTTP Servers einen Ordner Namens "Admin" und darin eine HTML mit eingebettetenm Bild (das Bild liegt auch im Admin Ordner). wenn ich dann einfach die HTML datei so aufrufe :

Delphi-Quellcode:
procedure TForm1.IdHTTPServer1CommandGet(AContext: TIdContext;
  ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
Var
  Stream: TFilestream;
  TheString : String;

  begin
// Caption := ARequestInfo.RemoteIP;

if ARequestInfo.Document = '/go' then
begin
try
inc(i);
Caption := ('Bereits' + IntToStr(i) + 'Aufrufe');
AResponseInfo.ContentType  := 'text/html';
Stream := TfileStream.Create('Admin/test.htm', fmOpenRead or fmShareDenyWrite );
AResponseInfo.ContentStream := Stream;
setlength(TheString, stream.size);
stream.Read(TheString[1], stream.size);
except
Exit;
end;

end;
end;
wird nur die HTML FIle angezeigt,nicht aber das eingebettete Bild.

Wo liegt hier der Fehler ?

THX

Dax 20. Jul 2005 17:48

Re: idHTTP Server : HTML anzeigen mit Bildern
 
Der Browser wird nach dem Bild fragen, das du dann natürlich auch liefern musst.

Wie wärs denn mit einem "generischen" Server, der einfach Internetadressen auf lokale übersetzt?

Assun 20. Jul 2005 17:52

Re: idHTTP Server : HTML anzeigen mit Bildern
 
wenn du mir jetzt noch erklärst was das bedeuten soll und wie ich das anstellen kann bin ich glücklich ;-)

PS : Der server muss übers Netz erreichbar sein !

Dax 20. Jul 2005 17:56

Re: idHTTP Server : HTML anzeigen mit Bildern
 
Das bedeutet folgendes:

Du gibts dem Server einen Arbeitspfad, zum Beispiel C:\MeinServer

Der Servermacht dann aus allen Anfragen an ihn Anfragen an das Verzeichnis und schickt dann dementsprechend die Datei zurück, z.B. würde dann /go/my.html zu C:\MeinServer/go/my.html, die der Server dann zurückschickt. So macht man das ;)

Assun 20. Jul 2005 18:23

Re: idHTTP Server : HTML anzeigen mit Bildern
 
Naja aber ich verweise doch schon auf ein Verzeichnis im Ornder vom Server :gruebel:

jfheins 20. Jul 2005 18:26

Re: idHTTP Server : HTML anzeigen mit Bildern
 
aber gibt der server dann auch das richtige bild zurück ?

Assun 20. Jul 2005 18:39

Re: idHTTP Server : HTML anzeigen mit Bildern
 
ich verweise auf die html datei. die wird au angezeigt. nur das Bild IN der HTML datei wird nit angezeigt obowhl das bild eingebettet is und im selben ordner liegt. Pfade in der HTML sind auch richtig

DGL-luke 20. Jul 2005 18:55

Re: idHTTP Server : HTML anzeigen mit Bildern
 
sobald der browser in die verlegenheit kommt, auf ein "<image>"-Tag zu stoßen, wird er eine verbindung zu deinem server aufbauen und sagen "schick mal das bild rüber!" und das solltest du dann auch machen. da sollte dann ein header ankommen, indem nach dem bild gefragt wird.

Assun 20. Jul 2005 20:34

Re: idHTTP Server : HTML anzeigen mit Bildern
 
Delphi-Quellcode:
AResponseInfo.ContentType  := 'text/html';
<-- kann man da nicht irgendwie was basteln dass er da die info bekommt dass auch JPEG Files dabei sind und dann die HTML datei UND die eingebettete JPEG file anzeigt ?

Dax 20. Jul 2005 20:36

Re: idHTTP Server : HTML anzeigen mit Bildern
 
Kurz? Nein.

Lang: Für jedes File, das nicht die HTML-Datei ist, fragt der Browser beim Server nach. ;)

Assun 20. Jul 2005 20:39

Re: idHTTP Server : HTML anzeigen mit Bildern
 
kannste net n bisschen Source Posten ? ich raff nit so ganz wie du das meinst

jfheins 20. Jul 2005 20:59

Re: idHTTP Server : HTML anzeigen mit Bildern
 
Schau, es läuft so:

:arrow: Browser: Bekommt URL
:arrow: Fragt beim Webserver
:arrow: Der gibt HTML-Seite zurück
:arrow: Browser freut sich und zeigt sie an.

Und jetzt:

:arrow: Browser findet ein Bild (und freut sich)
:arrow: sendet an Webserver (gib mich Bild !!!)
:arrow: webserver gibt wieder HTML-Seite zurück
:arrow: Browser ärgrt sich

Du siehst, dein Webserver gibt immer die gleiche HTML-Seite zurück, aber im zweiten Fall ist das nicht so gut ;)

Dax 20. Jul 2005 21:04

Re: idHTTP Server : HTML anzeigen mit Bildern
 
Assun, kuck dir bitte(!) mal die Indy-HTTP-Serverdemo an...

PierreB 20. Jul 2005 21:07

Re: idHTTP Server : HTML anzeigen mit Bildern
 
Zitat:

Zitat von Assun
kannste net n bisschen Source Posten ? ich raff nit so ganz wie du das meinst

Sorry mal OT:
Programmierst du deinen Server oder wir ?

Vielleicht solltest du dir erstmal was über die Funktionsweise eines Servers angucken. Wenn du die Apachesoftware nachprogrammiert hast, sag bescheid. ;)

scp 20. Jul 2005 22:14

Re: idHTTP Server : HTML anzeigen mit Bildern
 
Nach deinem Schema sähe das etwa so aus (ohne andere Fehler auszubügeln, wie z.B. Stream.Free):
Delphi-Quellcode:
if ARequestInfo.Document = '/go' then
begin
  try
  inc(i);
  Caption := ('Bereits' + IntToStr(i) + 'Aufrufe');
  AResponseInfo.ContentType  := 'text/html';
  Stream := TfileStream.Create('Admin/test.htm', fmOpenRead or fmShareDenyWrite );
  AResponseInfo.ContentStream := Stream;
  setlength(TheString, stream.size);
  stream.Read(TheString[1], stream.size);
  except
  Exit;
  end;
end
else
if ARequestInfo.Document = '/go/meine.jpg' then
begin
  try
  AResponseInfo.ContentType  := 'image/jpeg';
  Stream := TfileStream.Create('Admin/meine.jpg', fmOpenRead or fmShareDenyWrite );
  AResponseInfo.ContentStream := Stream;
  except
  Exit;
  end;
end;
Aber wie gesagt, wenn du das ganze so weiterführst wirds ganz schön chaotisch, deshalb:
Zitat:

Zitat von Dax
Assun, kuck dir bitte(!) mal die Indy-HTTP-Serverdemo an...



Alle Zeitangaben in WEZ +1. Es ist jetzt 07:35 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz