![]() |
IdHTTPServer - Wo liegen Bilder für Webseiten?
Moin !
Kann mir mal jemand erklären wo ich die Bilder hinlegen muss und wie ich die auf einer Webseite einbinde, damit ich sie im Browser sehe? Ich habe es jetzt so gemacht:
Delphi-Quellcode:
Das Bild liegt dann auf c:\ . Aber das kanns ja irgendwie nich sein. Ich habe schon alles erdenkliche probiert, aber ich komme nicht weiter. Hat der Webserver ein Arbeitsverzeichnis? Kann ich das irgendwie abfragen wenn es das gibt?
'
[img]file:///mychart.jpg[/img]</p>' Und wie ist dann die genaue Notation für Bilder? Denn wenn ich den Webserver vom Internet her anspreche sehe ich das Bild nicht wenn ich die obige Methode nutze. Das Bild sehe ich nur im lokalen LAN. |
Re: IdHTTPServer - Wo liegen Bilder für Webseiten?
Alle URLs, die auf das file-Protokoll lauten, zeigen auf den aktuellen Rechner - nicht auf irgendeinen Server.
|
Re: IdHTTPServer - Wo liegen Bilder für Webseiten?
Moin !
Sowas hab ich mir fast gedacht. Und wie muss ich das angeben das ich auf von extern / Internet das Bild sehe ? |
Re: IdHTTPServer - Wo liegen Bilder für Webseiten?
Ich krisch Plaque :pale:
Versuche jetzt schon seit ner geraumen Zeit rauszubekommen wo ich denn die Bilder ablegen muss wenn sie eine Webseite mit anzeigen soll. Mir gehen die Ideen aus. Die Suche nach IdHTTPServer und DocumentRoot hat mich nicht weiter gebracht. Auch die Suche nach Bilder / picture / pic / IMG ... Überall nur :?: Warum hat das Control nicht einfach einen Parameter "DocumentRoot" ? :gruebel: Ich hoffe da hat noch jemand nen Tip. Im Moment bin ich am verzweifeln :coder2: |
Re: IdHTTPServer - Wo liegen Bilder für Webseiten?
Hi moelski,
Versuchs doch einfach mal mit ' [img]mychart.jpg[/img]</p>', wenn du mychart.jpg im gleichen Ordner hast. Gruß Lee500 |
Re: IdHTTPServer - Wo liegen Bilder für Webseiten?
Absoluter Pfad von deinem Rootverzeichnis aus
Code:
oder relativer Pfad von deinem aktuellen Verzeichnis aus:
/image/bild.jpg
Code:
Also entweder:
images/bild.jpg
Code:
oder
[img]/images/bild.jpg[/img]
Code:
Erstere Variante ist übrigens vorzuziehen, falls du deine Seite mal umstrukturierst. Voraussetzung ist allerdings, dass die Bilder da bleiben, wo sie waren.
[img]images/bild.jpg[/img]
|
Re: IdHTTPServer - Wo liegen Bilder für Webseiten?
Zitat:
Wundere mich ja nur :drunken: |
Re: IdHTTPServer - Wo liegen Bilder für Webseiten?
Moin !
Also ich habe langsam alle Varianten durch. Das Verzeichnis in dem meine Testanwendung liegt ist das hier: C:\Documents and Settings\Dominik\Desktop\Delphi Dort liegt die EXE. Und dort liegt auch das Bild mychart.jpg. Additiv habe ich einen Unterordner angelegt mit dem gleichen Bild - zum Testen. Bis jetzt geht weder: - /image/mychart.jpg - image/mychart.jpg - mychart.jpg Die zugehörige Webseite schaut so:
Delphi-Quellcode:
Und das ist mein CommandGet (evtl. ist da ja was falsch):
'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">' +
'<html>' + '<head>' + '<title>Testwebseite</title>' + '</head>'; '<body>' + '' + '<h1>Tu was !</h1>' + '' + '<form action ="Graphics" method=post>' + // '<table border="0" cellpadding="5" cellspacing="0" bgcolor="#E0E0E0">' + '<tr>' + '<td align="right">Vorname:</td>' + '<td><input name="Vorname" type="text" size="30" maxlength="30"></td>' + '</tr>' + '<tr>' + '<td align="right" valign="top">Kommentar:</td>' + '<td><textarea name="Text" rows="10" cols="50"></textarea></td>' + '</tr>' + '<tr>' + '<td align="right">Formular:</td>' + '<td>' + '<input type="submit" value="Refresh" name="Refresh">' + '<input type="submit" value="Absenden" name="Send">' + '<input type="reset" value="Abbrechen" name="Cancle">' + '</td>' + '</tr>' + '</table>' + '</form>' + '' + ' Und hier nun das Bild ... ' + '[img]/images/mychart.jpg[/img]'+ '</body>' + '</html>';
Delphi-Quellcode:
procedure TForm1.IdHTTPServer1CommandGet(AContext: TIdContext;
ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo); //AResponseInfo.ContentText := 'Hello World. It is ' + TimeToStr(Time); Var TheFile:TMemoryStream; FN:String; begin If ARequestInfo.Document='/' Then begin With AResponseInfo do begin ContentText := HtmlForm; WriteContent; end; end else if ARequestInfo.Document = '/Graphics' then begin Memo1.Lines.Add(ARequestInfo.FormParams); Chart1.SubTitle.Caption := ARequestInfo.FormParams; if Pos('Refresh', ARequestInfo.FormParams) > 0 then PaintChart; AResponseInfo.ContentText := HtmlForm; AResponseInfo.WriteContent; end; end; Zitat:
|
Re: IdHTTPServer - Wo liegen Bilder für Webseiten?
Moin !
Ich habs nun hinbekommen. Habe auch ne Vermutung woran es liegen könnte. Weiss aber nicht obs stimmt. Bis jetzt habe ich immer das hier genutzt um die Webseite anzuzeigen:
Delphi-Quellcode:
HtmlForm war ein Funktion die einen String (=komplette Webseite) zurückgeliefert hat.
AResponseInfo.ContentText := HtmlForm;
AResponseInfo.WriteContent; Das funktioniert auch halbwegs, aber scheinbar nur mit Text. Bei Bildern wirds komplizierter. Gemerkt habe ich das, als ich mir die Eliza Demo von ![]()
Delphi-Quellcode:
FHTMLDir ist dabei das Document Root.
LFilename := ARequestInfo.Document;
if (LFilename = '/') or (LFilename = '/Graphics') then begin LFilename := '/index.html'; end; LPathname := FHTMLDir + LFilename; if FileExists(LPathname) then begin AResponseInfo.ContentStream := TFileStream.Create(LPathname, fmOpenRead + fmShareDenyWrite); Als ich das dann in der anderen Demo durchgesteppt habe ist mir aufgefallen, das die Bilder extra angefordert werden (was auch irgendwie logisch ist). Bei einer Webseite mit 2 Bildern schiebt er also 3x einen ContentStream zum Browser. Und da wurde mir auch klar warum das bei mir nicht klappt. Die Aufrufe für die Bilder mögen ja von der Webseite (bzw. dem Browser) gekommen sein, aber die Auswertung dazu fehlte, denn er hat immer nur seinen Content String retour geschickt. Und deswegen hat es mit dem FILE verlinkten Bild auch geklappt. Das hat sich der Browser dann am Webserver vorbei gesaugt. Ich hoffe ich liege da nicht soo falsch mit meiner Vermutung. Jedenfalls habe ich nun auch Bilder in meiner Webseite :cheer: |
Re: IdHTTPServer - Wo liegen Bilder für Webseiten?
Moin Dominik,
Zitat:
Grundsätzlich gibt es bei einer HTML-Datei zwei Möglichkeiten:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:34 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