![]() |
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:
wird nur die HTML FIle angezeigt,nicht aber das eingebettete Bild.
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; Wo liegt hier der Fehler ? THX |
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? |
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 ! |
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 ;) |
Re: idHTTP Server : HTML anzeigen mit Bildern
Naja aber ich verweise doch schon auf ein Verzeichnis im Ornder vom Server :gruebel:
|
Re: idHTTP Server : HTML anzeigen mit Bildern
aber gibt der server dann auch das richtige bild zurück ?
|
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
|
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.
|
Re: idHTTP Server : HTML anzeigen mit Bildern
Delphi-Quellcode:
<-- 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 ?
AResponseInfo.ContentType := 'text/html';
|
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. ;) |
Re: idHTTP Server : HTML anzeigen mit Bildern
kannste net n bisschen Source Posten ? ich raff nit so ganz wie du das meinst
|
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 ;) |
Re: idHTTP Server : HTML anzeigen mit Bildern
Assun, kuck dir bitte(!) mal die Indy-HTTP-Serverdemo an...
|
Re: idHTTP Server : HTML anzeigen mit Bildern
Zitat:
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. ;) |
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:
Aber wie gesagt, wenn du das ganze so weiterführst wirds ganz schön chaotisch, deshalb:
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; Zitat:
|
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