Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Indy HTTP Server zeigt keine Bilder an ? (https://www.delphipraxis.net/26094-indy-http-server-zeigt-keine-bilder.html)

Calimero 18. Jul 2004 10:23


Indy HTTP Server zeigt keine Bilder an ?
 
Wenn ich versuche eine Seite mit Bildern aufzurufen zeigt er mir keine Bilder an oder nur die hälfte eines Bildes ! Mime Type ist auch richtig ! Warum will er nicht ?
Habe folgenden Programm Code benutzt bez. geschrieben.

Code:
procedure TForm1.IdHTTPServer1CommandGet(AThread: TIdPeerThread;
  ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
Var
  Stream: TFilestream;
  begin

if ARequestInfo.Document = '/' then begin
IF fileexists(DocumentRoot + 'index.html') = true then ARequestInfo.Document := 'index.html';
IF fileexists(DocumentRoot + 'index.htm') = true then ARequestInfo.Document := 'index.htm';
IF fileexists(DocumentRoot + 'index.php') = true then ARequestInfo.Document := 'index.php';
end;

Stream := TfileStream.Create(DocumentRoot + ARequestInfo.Document, fmOpenRead or fmShareDenyWrite );
AResponseInfo.ContentStream := Stream;
end;

SirThornberry 18. Jul 2004 11:11

Re: Indy HTTP Server zeigt keine Bilder an ?
 
Zeig er dir etwa seiten an, so wie dein Sourse aussieht dürfte dir auch keine html-seite angezeigt werden. Du öffnest zwar eine Datei in einem Stream mit
Delphi-Quellcode:
Stream := TfileStream.Create(DocumentRoot + ARequestInfo.Document, fmOpenRead or fmShareDenyWrite);
aber du lieferst nirgends den String zurück an den Client (z.B.: per AResponseInfo.ResponseText)
desweiteren rufst du nirgends Stream.Free auf. Was bringt es dir eine datei per stream zu öffnen wenn du dann nix damit machst (auslesen, etc.)

Anstelle der Code-Tags könntest du auch die "Delphi-Code" Tags verwenden. Außerdem wäre eine ordentliche Formatierung (einrückung) sehr zu empfehlen

Calimero 18. Jul 2004 11:53

Re: Indy HTTP Server zeigt keine Bilder an ?
 
sorry hatte ich vergessen zu posten, natürlich schick in den stream mit.

Code:
AResponseInfo.ContentStream := Stream;
trotzdem zeigt er mit nur halbe bilder an oder gar keine :-(

SirThornberry 18. Jul 2004 12:21

Re: Indy HTTP Server zeigt keine Bilder an ?
 
dann versuche einfach mal den Stream in den ResponseString zu stopfen ob es dann funktioniert, so hab ichs zumindest gemacht bei meinem server und das funktioniert supi

Calimero 18. Jul 2004 13:13

Re: Indy HTTP Server zeigt keine Bilder an ?
 
Jo, gute frage nächste frage würd es gerne probieren bloss hab noch nie ein
filestream in Delphi in ein string gepackt wie macht man das ?

SirThornberry 18. Jul 2004 13:48

Re: Indy HTTP Server zeigt keine Bilder an ?
 
ganz einfach
Delphi-Quellcode:
 setlength(TheString, stream.size);
 stream.Read(TheString[1], stream.size);
danach ist in TheString der Inhalt des Streams

Calimero 18. Jul 2004 16:46

Re: Indy HTTP Server zeigt keine Bilder an ?
 
THX es funktioniert :-) :-D :-D :-D :-D :-D


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:19 Uhr.

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