![]() |
idHttp Server - Bild zur verfügung stellen ??
Hi !
Habe schon einiges ausprobiert, und auch schon 2 Beispiel Codes gefunden. Aber trotzedm schaffe ich es nicht per idHttp Server ein Bild zur Verfügung zu stellen !(aufruf mit ![]() hier mein Code :
Delphi-Quellcode:
Wenn ich diesen Code benutze, wird ständig der Speichern unter Dialog des Explorers/IE/FireFox angezeigt ! Ich möchte aber, dass das Bild im Browser direkt angezeigt wird. Wie ist das zu schaffen ?
procedure TForm1.Button1Click(Sender: TObject);
begin IdHTTPServer1.Active := false; IdHTTPServer1.DefaultPort := 8888; // Port 8888 ist Standard try IdHTTPServer1.Active := true; except raise; end; if IdHTTPServer1.Active then begin label1.Caption := 'Server ist: ONLINE an Port 8888'; end; end; procedure TForm1.Button2Click(Sender: TObject); begin try IdHTTPServer1.Active := false; except raise; end; if not IdHTTPServer1.Active then begin Label1.Caption := 'Server ist: OFFLINE'; end; end; procedure TForm1.IdHTTPServer1CommandGet(AThread: TIdPeerThread; ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo); var Stream : TFileStream; TheString : String; begin if fileexists('test.jpg') = true then ARequestInfo.Document := 'test.jpg'; Stream := TFileStream.Create('test.jpg', fmOpenRead or fmShareDenyWrite); Setlength(TheString, Stream.size); Stream.Read(TheString[1], Stream.size); AResponseInfo.ContentType:='Content-Type: image/jpeg'; AResponseInfo.ContentStream := Stream; AResponseInfo.ContentText := TheString; end; mfg, Assun |
Re: idHttp Server - Bild zur verfügung stellen ??
Hi.
Tu es doch einfach in HTML einbetten ;-) |
Re: idHttp Server - Bild zur verfügung stellen ??
das geht eben auch net ! Sogar html dateien werden mit dem Speichern unter Dialog angezeigt...
|
Re: idHttp Server - Bild zur verfügung stellen ??
Liste der Anhänge anzeigen (Anzahl: 1)
setze nur content-text und nix anderes.
im anhang hab ich nen kleines http-serverbeispiel |
Re: idHttp Server - Bild zur verfügung stellen ??
Puh ! Also ich habe gestern ewig im Source gesucht, aber nix gefunden, dass ich brauchen könnte :-(
dann habe ich ne weile rumexperementiert. schließlich kam das heraus :
Delphi-Quellcode:
Allerdings geht das nur wenn ich offline bin !!! sobald ich online bin, wird das Bild nur im Quelltext dargestellt (über LocalIp oder iNetIP ist gleich)
procedure TForm1.Button1Click(Sender: TObject);
begin IdHTTPServer1.Active := false; IdHTTPServer1.DefaultPort := 8888; // Port 8888 ist Standard try IdHTTPServer1.Active := true; except raise; end; if IdHTTPServer1.Active then begin label1.Caption := 'Server ist: ONLINE an Port 8888'; end; end; procedure TForm1.Button2Click(Sender: TObject); begin try IdHTTPServer1.Active := false; except raise; end; if not IdHTTPServer1.Active then begin Label1.Caption := 'Server ist: OFFLINE'; end; end; procedure TForm1.IdHTTPServer1CommandGet(AThread: TIdPeerThread; ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo); Var Stream: TFilestream; TheString : String; begin if ARequestInfo.Document = '/' then begin IF fileexists('test.jpg') = true then ARequestInfo.Document := 'test.jpg'; end; Stream := TfileStream.Create(ARequestInfo.Document, fmOpenRead or fmShareDenyWrite ); AResponseInfo.ContentStream := Stream; setlength(TheString, stream.size); stream.Read(TheString[1], stream.size); end; kann mir da jemand weiterhelfen ? |
Re: idHttp Server - Bild zur verfügung stellen ??
*vorsichtig-push* sry, aber ich brauche das dringend. weiss einer woran das liegt ?
|
Re: idHttp Server - Bild zur verfügung stellen ??
kurze frage: wird das bild richtig angezeigt wenn du meinen beispielserver nutzt?
|
Re: idHttp Server - Bild zur verfügung stellen ??
habs ehrlich gesagt noch net ausproberit, denn ich müsste das ja umproggen, da man so wie es ist nur htm files öffnen kann...
Aber was mich wundert !!! : mit dem von mir oben geposteten Code geht es wenn ich offline bin super ! wenn ich on bin wird das bild aber nur als Quelltext (so wie wenn mans mit Editor öffnen würde) angezeigt...slebst bei 127.0.0.1 !!! Raff ich net :-( |
Re: idHttp Server - Bild zur verfügung stellen ??
den fehler versteh ich auch nicht... Umproggen? musst du nicht, stelle den Modus auf "Einfach" trage als "StandartDatei" den namen deines Bildes ein, ändere den Port (dann eventuell programm neu starten). Und anschließend kannst du über "http://127.0.0.1:8888" das ganze aufrufen und es sollte dir dein bild zurück gegeben werden sofern es in dem ordner gefunden wird.
|
Re: idHttp Server - Bild zur verfügung stellen ??
Hey ! Habe nun den Fehler gefunden. Es lag an Content-Type. Falls es jemand braucht, So geht der Code :
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin IdHTTPServer1.Active := false; IdHTTPServer1.DefaultPort := 8888; // Port 8888 ist Standard try IdHTTPServer1.Active := true; except raise; end; if IdHTTPServer1.Active then begin label1.Caption := 'Server ist: ONLINE an Port 8888'; end; end; procedure TForm1.Button2Click(Sender: TObject); begin try IdHTTPServer1.Active := false; except raise; end; if not IdHTTPServer1.Active then begin Label1.Caption := 'Server ist: OFFLINE'; end; end; procedure TForm1.IdHTTPServer1CommandGet(AThread: TIdPeerThread; ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo); Var Stream: TFilestream; TheString : String; begin if ARequestInfo.Document = '/' then begin AResponseInfo.ContentType := 'image/jpeg'; IF fileexists('test.jpg') = true then ARequestInfo.Document := 'test.jpg'; end; Stream := TfileStream.Create('test.jpg', fmOpenRead or fmShareDenyWrite ); AResponseInfo.ContentStream := Stream; setlength(TheString, stream.size); stream.Read(TheString[1], stream.size); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:22 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 by Thomas Breitkreuz