AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi IdHTTPServer - Wo liegen Bilder für Webseiten?
Thema durchsuchen
Ansicht
Themen-Optionen

IdHTTPServer - Wo liegen Bilder für Webseiten?

Ein Thema von moelski · begonnen am 4. Jul 2008 · letzter Beitrag vom 5. Jul 2008
Antwort Antwort
Seite 1 von 2  1 2      
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#1

IdHTTPServer - Wo liegen Bilder für Webseiten?

  Alt 4. Jul 2008, 20:48
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:
  '

[img]file:///mychart.jpg[/img]</p>
'
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?
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.
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#2

Re: IdHTTPServer - Wo liegen Bilder für Webseiten?

  Alt 4. Jul 2008, 21:11
Alle URLs, die auf das file-Protokoll lauten, zeigen auf den aktuellen Rechner - nicht auf irgendeinen Server.
  Mit Zitat antworten Zitat
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#3

Re: IdHTTPServer - Wo liegen Bilder für Webseiten?

  Alt 4. Jul 2008, 21:14
Moin !

Sowas hab ich mir fast gedacht. Und wie muss ich das angeben das ich auf von extern / Internet das Bild sehe ?
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#4

Re: IdHTTPServer - Wo liegen Bilder für Webseiten?

  Alt 4. Jul 2008, 22:49
Ich krisch Plaque

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" ?

Ich hoffe da hat noch jemand nen Tip. Im Moment bin ich am verzweifeln
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
Benutzerbild von Lee500
Lee500

Registriert seit: 18. Sep 2006
39 Beiträge
 
Delphi 2010 Architect
 
#5

Re: IdHTTPServer - Wo liegen Bilder für Webseiten?

  Alt 4. Jul 2008, 23:28
Hi moelski,

Versuchs doch einfach mal mit '

[img]mychart.jpg[/img]</p>', wenn du mychart.jpg im gleichen Ordner hast.

Gruß Lee500
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: IdHTTPServer - Wo liegen Bilder für Webseiten?

  Alt 4. Jul 2008, 23:54
Absoluter Pfad von deinem Rootverzeichnis aus
Code:
/image/bild.jpg
oder relativer Pfad von deinem aktuellen Verzeichnis aus:
Code:
images/bild.jpg
Also entweder:
Code:
[img]/images/bild.jpg[/img]
oder
Code:
[img]images/bild.jpg[/img]
Erstere Variante ist übrigens vorzuziehen, falls du deine Seite mal umstrukturierst. Voraussetzung ist allerdings, dass die Bilder da bleiben, wo sie waren.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
rotfc
(Gast)

n/a Beiträge
 
#7

Re: IdHTTPServer - Wo liegen Bilder für Webseiten?

  Alt 5. Jul 2008, 03:03
Zitat von moelski:
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:
  '

[img]file:///mychart.jpg[/img]</p>
'
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?
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.
Verwechselst Du möglicherweise einen lokalen "Webserver" und dessen Webseiten mit einem Server, der über das Internet erreichbar ist/sein soll?

Wundere mich ja nur
  Mit Zitat antworten Zitat
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#8

Re: IdHTTPServer - Wo liegen Bilder für Webseiten?

  Alt 5. Jul 2008, 07:41
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:
  '<!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>';
Und das ist mein CommandGet (evtl. ist da ja was falsch):
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 = '/Graphicsthen 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:
von deinem Rootverzeichnis aus
Wo genau ist denn das Rootverzeichnis? Ichhabe noch keine Möglichkeit gefunden es auszulesen, geschweige denn zu setzen
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#9

Re: IdHTTPServer - Wo liegen Bilder für Webseiten?

  Alt 5. Jul 2008, 09:39
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:
    AResponseInfo.ContentText := HtmlForm;
    AResponseInfo.WriteContent;
HtmlForm war ein Funktion die einen String (=komplette Webseite) zurückgeliefert hat.

Das funktioniert auch halbwegs, aber scheinbar nur mit Text. Bei Bildern wirds komplizierter.

Gemerkt habe ich das, als ich mir die Eliza Demo von http://www.TeamCoherence.com geladen habe. Dort übergibt man den Content nicht als String, sondern als Dateistream:

Delphi-Quellcode:
  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);
FHTMLDir ist dabei das Document Root.

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
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: IdHTTPServer - Wo liegen Bilder für Webseiten?

  Alt 5. Jul 2008, 14:02
Moin Dominik,

Zitat von moelski:
Wo genau ist denn das Rootverzeichnis? Ichhabe noch keine Möglichkeit gefunden es auszulesen, geschweige denn zu setzen
Auslesen kannst Du das auch nicht.
Grundsätzlich gibt es bei einer HTML-Datei zwei Möglichkeiten:
  1. Das Rootverzeichnis ist die URL, aus der heraus das Dokument aufgerufen / erzeugt wurde (abzüglich Dateinamen)
  2. Das Rootvereichnis wird über das Base-Tag angegeben.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 06:49 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