![]() |
IdHTTPServer Bilder mit Text verschicken ?!?
Hi Leute,
habe folgendes Problemm. Versuche mit hilfe von IdHTTPServer einen Dynamisch generierte website zur versenden, leider klapt es nur zum teil.
Delphi-Quellcode:
HTML_PAGEPRODUCER -> Hier wird die seite zusammen geschustert.
Procedure TForm1.IdHTTPServer1CommandGet(AContext: TIdContext; ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
Var html : String; Begin HTML_PAGEPRODUCER( html ); AResponseInfo.ContentText := html; End; Solange es sich nur um Text handelt funktioniert es 100%-ig. Wenn ich in diese seite bilder integriere werden die nicht angezeigt. wie kann ich es realizieren ? gruss seba und Danke in vorraus. |
Re: IdHTTPServer Bilder mit Text verschicken ?!?
Hallo,
wenn Du dir im Browser den Quelltext der generierten Seite anschaust wie lauten dann die Pfadangaben zu den Bildern. Sind sie dort auch auf Deinem Computer? Grüße Klaus |
Re: IdHTTPServer Bilder mit Text verschicken ?!?
Hi,
die Pfad angaben sind 100%-ig korrect. Wenn ich versuche anderen Pfad angaben zu machen bekomme ich ganz anderen platzhalter. Somit liegt es nicht an den Pfad. Der muss korrect sein. gruss seba |
Re: IdHTTPServer Bilder mit Text verschicken ?!?
.. dann ist es ja gut.
In diesem ![]() Vielleicht hilft es Dir ja. Grüße Klaus |
Re: IdHTTPServer Bilder mit Text verschicken ?!?
Ich kenne diesen Thread, den habe ich mir schon angeschaut, aber ich komme trotz dem nich klar damit.
gruss seba |
Re: IdHTTPServer Bilder mit Text verschicken ?!?
Noch ein Info vieleicht.
Wenn ich mit IE zugreife auf mein Rechner bekomme ich von mein Prog. generierte seite zurück ohne grafiken, wenn ich aber diese seite von IE speichere und diese abgespeicherte seite abrufe bekomme ich eine 100%-ige seite angezeigt mit dem Grafiken. warum ? gruss seba |
Re: IdHTTPServer Bilder mit Text verschicken ?!?
Das klingt sehr danach, als ob du absolute PFadangaben zu den Bildern verwendest!
Wie sieht denn der generierte Quelltext aus? |
Re: IdHTTPServer Bilder mit Text verschicken ?!?
Das stimmt aller dings.
Ja wo kann ich den dem IdhTTPServer sagen wo sein Root verzeichnis liegt ? gruss seba |
Re: IdHTTPServer Bilder mit Text verschicken ?!?
Zitat:
Zitat:
Zitat:
Meines Wissens ist es das Verzeichnis von wo aus der Server gestartet wurde. Grüße Klaus |
Re: IdHTTPServer Bilder mit Text verschicken ?!?
Liste der Anhänge anzeigen (Anzahl: 1)
Ja das denke ich auch,
deswege kann ich mir nicht vorstellen das es an den Pfad liegt. Ich habe alle möglichen warianten ausprobiert und immer wenn ich ein falschen pfad angewendet habe habe ich platzhalter für die grafik mit einem roten kreuz bekommen, aber wenn ich ihm realen pfad zur grafik angebe bekomme ich ein platzhalter mit "abgebildete grafik" siege anhang |
Re: IdHTTPServer Bilder mit Text verschicken ?!?
Und deswegen bin ich der meinung das es nicht an den pfad liegt.
|
Re: IdHTTPServer Bilder mit Text verschicken ?!?
Mensch. Jetz zeig uns doch mal das generierte HTML!
|
Re: IdHTTPServer Bilder mit Text verschicken ?!?
Das ist diese test html mit diesen zwei bildchen aus dem anhang.
Delphi-Quellcode:
html := 'test</br>' +
' [img]HTTP/atas_su_kiri.gif[/img]' + '[img]E:\DELPHI\° DELPHI 2007 °\HELIMA 1\HTTP\atas_su_kiri.gif[/img]'; |
Re: IdHTTPServer Bilder mit Text verschicken ?!?
Code:
Was passiert wenn Du den html Code so änderst.
html := 'test</br>' +
' [img]./atas_su_kiri.gif[/img]' + '[img]./atas_su_kiri.gif[/img]'; Mit relativen Pfaden. Hier sollten die Bilder dann im Verzeichnis des Servers liegen. Grüße Klaus |
Re: IdHTTPServer Bilder mit Text verschicken ?!?
Dann kommen immer platzhalter mit roten kreutz.
gruss seba |
Re: IdHTTPServer Bilder mit Text verschicken ?!?
Leute lass mich nicht hengen.
Was mit dem TPageProducer ? Wofür kann mann ihm gebrauchen ? Oder hab schon mal gesehen
Delphi-Quellcode:
Helft mir bitte.
aresponseinfo.ContentType :='image/gif';
gruss seba |
Re: IdHTTPServer Bilder mit Text verschicken ?!?
Hallo shifter,
komme da im Moment auch nicht weiter. Werde mich heute abend daheim noch mal da dran setzen. Geht es denn bei Dir, wenn Du die Datei abspeicherst und dann der Server die Datei liest? Grüße Klaus |
Re: IdHTTPServer Bilder mit Text verschicken ?!?
Habe ich auch versucht.
Ich habe in IE mir den QuellText angezeigt und gespeichert in eine Datei. Diese Datei habe ich den IdHTTPServer gegeben um auf anfragen diese zu senden. leider bin ich ein bisschen zu blöd für diese sachen. Ich brauch es aber und das noch am besten gestern. gruss seba |
Re: IdHTTPServer Bilder mit Text verschicken ?!?
Vieleicht hab ich mein Problemm nicht verständlich erklärt,
hier noch ein versuch Ich habe ein prg der einfach nur irgendwelche daten liefert ( uninteresant ) In diesen programm möchte ich ein webserver einbauen damit die user aus dem netzt sich status infos ansehen können. also de httpserver soll einfach immer wieder die "gleiche seite" anzeigen ( natürlich die wete in diese seite ändern sich ) Bis jezt hat diese info seite nur reines text gehabt und mit folgende routine hat es 100%-ig functioniert :
Delphi-Quellcode:
procedure TForm1.IdHTTPServer1CommandGet(AContext: TIdContext; ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
Begin aresponseinfo.ContentText := GET_HTML; End; GET_HTML Hat einfach normales html code geliefert ohne jäglichen bildern. Jezt hab ich bilder eingebaut in den html code und diese werden nicht angezeigt ! DIE PFAD ANGABEN SIND KORRECT Bevor jemand die frage stellt. Es werden einfach Platzhalter angezeigt die Bilder werden nicht übertragen. Wie kann ich mein Problemm lösen, damit der IdHTTPServer die Bilder Sendet ? gruss seba @ Meflin : Bloss keine aufregung. |
Re: IdHTTPServer Bilder mit Text verschicken ?!?
Also ausser dem Pfad kann man bei sowas nichts Falsch machen.
Allerdings kenne ich immer nur Pfade reaktiv zur HTML Datei und die gibt es ja hier nicht. Was passiert wenn du die Bilder in das Exe Dir kopierst und sie ohen Pfadangabe in die seite verlinkst? Apropos, sollte deine Anwednung ein Dienst sein liegt das Workdir automatisch im Windows Ornder du must es dann manuell wieder auf das EXE Dir setzen. |
Re: IdHTTPServer Bilder mit Text verschicken ?!?
Wenn ich nur ein bild versende klapt es mit :
Delphi-Quellcode:
p ist filename mit dem pfad. So functioniert es.
aresponseinfo.ContentStream := tfilestream.Create(p,fmopenread);
Dann habe ich folgendes versucht :
Delphi-Quellcode:
Wenn htmltext enthält keine bilder dann wird es ohne problemme dargestellt,
if arequestinfo.Document ='/'
then aresponseinfo.ContentText := htmltext; else aresponseinfo.ContentStream := tfilestream.Create(p,fmopenread); wenn htmltext enthält nur bilder wird es auch ohne problemme dargestellt aber wenn htmltext beinhaltet bilder und text dann kommt nur der text und für bilder bleibt nur der platzhalter. bin am ende gruss |
Re: IdHTTPServer Bilder mit Text verschicken ?!?
So sieht die ganze Test geschichte aus :
Delphi-Quellcode:
gruss
procedure TForm1.IdHTTPServer1CommandGet(AContext: TIdContext; ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
Var html, p : String; begin p := 'E:\DELPHI\° DELPHI 2007 °\WEB SERVER TEST\test.jpg'; html := '<Table>' + '<tr><td>' + '[b]Hallo Jezt geht los[/b]' + '</td></tr></table>'; // '[img]'+p+'[/img]'; If ARequestInfo.Document ='/' Then AResponseInfo.ContentText := html Else AResponseInfo.ContentStream := tfilestream.Create(p,fmopenread); end; seba |
Re: IdHTTPServer Bilder mit Text verschicken ?!?
Ich habe die lösung :
Delphi-Quellcode:
Ich habe mich einfach im kreis gedreht und die welt nicht meht verstanden.p := relpfad + ARequestInfo.Document; If ARequestInfo.Document ='/' Then Begin AResponseInfo.ContentText := html; End else begin AResponseInfo.ContentStream := tfilestream.Create(p,fmopenread); End; Aber am ende ist es simpler als ich dachte. Trotz dem ich danke euch. gruss seba |
Re: IdHTTPServer Bilder mit Text verschicken ?!?
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Shifter,
sodele auch eine kleine Lösung: Wenn die HTML Seite nur im Speicher liegen soll. Das wird aber recht unübersichtlich, wenn die Seite noch mehrere Links hat.
Delphi-Quellcode:
function pageCreater:TMemoryStream;
var sl : TStringList; begin result := TMemoryStream.Create; sl := TStringList.create; sl.add('<html>'); sl.add('<body>'); sl.add(' dies ist ein Test'); sl.add('<hr>'); sl.add('[img]./_herz.jpg[/img]'); sl.add('</body>'); sl.add('</html>'); sl.SaveToStream(result); sl.free; end; procedure TForm1.IdHTTPServer1CommandGet(AThread: TIdPeerThread; ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo); begin if ARequestInfo.Document = '/index.html' then AResponseInfo.ContentStream:=pageCreater else AResponseInfo.ContentStream:=TFileStream.Create(ExtractFilePath(ParamStr(0))+ARequestInfo.Document,fmOpenRead); Memo1.Lines.Add(ARequestInfo.Document); end; Der einfachere Weg ist daher die html Seite auf der Platte liegen zu haben.
Delphi-Quellcode:
Das ist mit Indy9 gemacht, kann sein, dass Indy10 da etwas abweicht.
procedure TForm1.IdHTTPServer1CommandGet(AThread: TIdPeerThread;
ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo); begin AResponseInfo.ContentStream:=TFileStream.Create(ExtractFilePath(ParamStr(0))+ARequestInfo.Document,fmOpenRead); Memo1.Lines.Add(ARequestInfo.Document); end; Schönen Abend noch Klaus |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:08 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