AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi idHttp Server - Bild zur verfügung stellen ??
Thema durchsuchen
Ansicht
Themen-Optionen

idHttp Server - Bild zur verfügung stellen ??

Ein Thema von Assun · begonnen am 26. Apr 2005 · letzter Beitrag vom 27. Apr 2005
Antwort Antwort
Benutzerbild von Assun
Assun

Registriert seit: 3. Feb 2005
Ort: Hilzingen am Bodensee
469 Beiträge
 
Delphi 2005 Personal
 
#1

idHttp Server - Bild zur verfügung stellen ??

  Alt 26. Apr 2005, 18:56
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 http://127.0.0.1:8888)

hier mein 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 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;
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 ?

mfg,

Assun
Sebastian Dietrich
http://Assun.de - bald komplett überarbeitet
  Mit Zitat antworten Zitat
Waldteufel
(Gast)

n/a Beiträge
 
#2

Re: idHttp Server - Bild zur verfügung stellen ??

  Alt 26. Apr 2005, 18:58
Hi.

Tu es doch einfach in HTML einbetten
  Mit Zitat antworten Zitat
Benutzerbild von Assun
Assun

Registriert seit: 3. Feb 2005
Ort: Hilzingen am Bodensee
469 Beiträge
 
Delphi 2005 Personal
 
#3

Re: idHttp Server - Bild zur verfügung stellen ??

  Alt 26. Apr 2005, 19:01
das geht eben auch net ! Sogar html dateien werden mit dem Speichern unter Dialog angezeigt...
Sebastian Dietrich
http://Assun.de - bald komplett überarbeitet
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: idHttp Server - Bild zur verfügung stellen ??

  Alt 26. Apr 2005, 19:08
setze nur content-text und nix anderes.

im anhang hab ich nen kleines http-serverbeispiel
Angehängte Dateien
Dateityp: zip httpserver_101.zip (52,7 KB, 69x aufgerufen)
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Assun
Assun

Registriert seit: 3. Feb 2005
Ort: Hilzingen am Bodensee
469 Beiträge
 
Delphi 2005 Personal
 
#5

Re: idHttp Server - Bild zur verfügung stellen ??

  Alt 27. Apr 2005, 13:37
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:
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;
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)

kann mir da jemand weiterhelfen ?
Sebastian Dietrich
http://Assun.de - bald komplett überarbeitet
  Mit Zitat antworten Zitat
Benutzerbild von Assun
Assun

Registriert seit: 3. Feb 2005
Ort: Hilzingen am Bodensee
469 Beiträge
 
Delphi 2005 Personal
 
#6

Re: idHttp Server - Bild zur verfügung stellen ??

  Alt 27. Apr 2005, 17:16
*vorsichtig-push* sry, aber ich brauche das dringend. weiss einer woran das liegt ?
Sebastian Dietrich
http://Assun.de - bald komplett überarbeitet
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#7

Re: idHttp Server - Bild zur verfügung stellen ??

  Alt 27. Apr 2005, 18:29
kurze frage: wird das bild richtig angezeigt wenn du meinen beispielserver nutzt?
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Assun
Assun

Registriert seit: 3. Feb 2005
Ort: Hilzingen am Bodensee
469 Beiträge
 
Delphi 2005 Personal
 
#8

Re: idHttp Server - Bild zur verfügung stellen ??

  Alt 27. Apr 2005, 19:05
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
Sebastian Dietrich
http://Assun.de - bald komplett überarbeitet
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#9

Re: idHttp Server - Bild zur verfügung stellen ??

  Alt 27. Apr 2005, 19:21
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.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Assun
Assun

Registriert seit: 3. Feb 2005
Ort: Hilzingen am Bodensee
469 Beiträge
 
Delphi 2005 Personal
 
#10

Re: idHttp Server - Bild zur verfügung stellen ??

  Alt 27. Apr 2005, 20:06
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;
Sebastian Dietrich
http://Assun.de - bald komplett überarbeitet
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:35 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