AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Einbindung von Grafiken in Html-Seiten

Einbindung von Grafiken in Html-Seiten

Ein Thema von Ookami · begonnen am 1. Apr 2010 · letzter Beitrag vom 2. Apr 2010
Antwort Antwort
Benutzerbild von Ookami
Ookami

Registriert seit: 20. Nov 2009
Ort: Baden Württemberg
77 Beiträge
 
Delphi 2009 Architect
 
#1

Einbindung von Grafiken in Html-Seiten

  Alt 1. Apr 2010, 09:35
Einbindung von Grafiken in Html-Seiten über Indy-Server idHttpServer

Hallo zusammen,

ich muss eine Applikation erstellen, die Html-Seiten erstellt. Über Browser-Adresse http://127.0.0.1 kann ich das dann am Bildschirm betrachten.
Soweit, so gut. Es ist aber notwendig, einige Grafiken einzubauen und genau hier liegt der Hund begraben.
Hat jemand von euch das Problem schon mal gelöst, oder 'ne Idee. SelfHtml hat mir bei 95% geholfen, aber hier nicht mehr.
Ich habe auch alle (mir bekannten) Möglichkeiten zur Pfadangabe getestet. Ich glaube langsam ich habe hier einen grundlegenden Fehler in der Denke.

Wenn ich die Seite als Html abspeichere, funktioniert das dann.

Ein relevantes Stück aus dem Quellcode

Delphi-Quellcode:
 

    AResponseinfo.ContentText:= AResponseinfo.ContentText+
    +' <td>

[img]../bild1.jpg[/img]</p></td>
'

    ....

    +' <td>

[img]../TLGreen.JPG[/img]</p></td>
'
Alles andere funktioniert soweit. Die Seite wird erzeugt, die Tabelle, Buttons und alles andere mit. Aber anstatt der Grafiken kommt nur der Platzhalter für Grafik nicht gefunden.

Danke schon mal im Voraus
Wolfgang
  Mit Zitat antworten Zitat
Daniel
(Administrator)

Registriert seit: 30. Mai 2002
Ort: Hamburg
15.486 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Einbindung von Grafiken in Html-Seiten

  Alt 1. Apr 2010, 09:39
Über die Angabe BASE HREF im Header kannst Du dem Browser sagen, wohin alle relativen Links aufgelöst werden sollen. Das könnte helfen. Offenbar sucht Dein TWebBrowser im falschen Verzeichnis nach den Grafiken. Die Alternative bestünde darin, den Bildern selbst gleich den absoluten Pfad mit auf den Weg zu geben: oder so...
Daniel R. Wolf
Admin Delphi-PRAXiS
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.578 Beiträge
 
#3

Re: Einbindung von Grafiken in Html-Seiten

  Alt 1. Apr 2010, 10:44
Vielleicht solltest du dann mal auf den Platzhalter rechtsklicken und gucken, wo der Browser nach der Grafik gesucht hat.

Mir fallen da nämlich ein paar Sachen auf: Wenn du wirklich nur http://127.0.0.1 eingeben musst, dann ist die Angabe
Code:
[img]../bild1.jpg[/img]
schonmal unpraktisch - es gibt ja kein übergeordnetes Verzeichnis!

Außerdem muss dein Delphi-Programm natürlich auch die Bilder zurückliefern, wenn es danach gefragt wird - du darfst also nicht immer das gleiche zurückgeben im Event.
  Mit Zitat antworten Zitat
Benutzerbild von Ookami
Ookami

Registriert seit: 20. Nov 2009
Ort: Baden Württemberg
77 Beiträge
 
Delphi 2009 Architect
 
#4

Re: Einbindung von Grafiken in Html-Seiten

  Alt 2. Apr 2010, 14:10
Danke euch beiden erst mal.

Dir Daniel, die Sache mit dem base href hatte ich leider schon erfolglos eingesetzt.
Ich hatte das Ganze als Html-Datei händisch vorbereitet, um die Angaben dann nur noch an die AResponseinfo.ContentText zu übergeben.


die Angabe http://127.0.0.1/ war auch nicht ganz korrekt, es hätte http://127.0.0.1/login heißen müssen, sorry.

Dir jfheins,
Zitat:
Mir fallen da nämlich ein paar Sachen auf: Wenn du wirklich nur http://127.0.0.1 eingeben musst, dann ist die Angabe

Code: markieren
[img]../bild1.jpg[/img] schonmal unpraktisch - es gibt ja kein übergeordnetes Verzeichnis! (geb ich dir Recht. wie gesagt aus SelfHtml und... es funktioniert auch nicht)

Außerdem muss dein Delphi-Programm natürlich auch die Bilder zurückliefern, wenn es danach gefragt wird - du darfst also nicht immer das gleiche zurückgeben im Event.
Frage: was bitte meinst du mit "du darfst also nicht immer das gleiche zurückgeben im Event"?

Die Tips habe ich trotzdem nochmal benutzt. Der Erfolg bis jetzt,
Als Pfad wird mir beim Anklicken "file:///D:/Project/TLGreen.JPG" zurückgegeben (In D:\Project sind auch alle Dateien drin).
Den ins Programm eingesetzt ändert sich das angezeigte Symbol im Platzhalter. Also nicht mehr das rote X, sondern ein Image-Icon. Das Bild selbst kommt aber nicht.


Gruß Wolfgang und nochmals Danke an Alle
Wolfgang
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#5

Re: Einbindung von Grafiken in Html-Seiten

  Alt 2. Apr 2010, 14:55
Zitat von Ookami:
Frage: was bitte meinst du mit "du darfst also nicht immer das gleiche zurückgeben im Event"?

Die Tips habe ich trotzdem nochmal benutzt. Der Erfolg bis jetzt,
Als Pfad wird mir beim Anklicken "file:///D:/Project/TLGreen.JPG" zurückgegeben (In D:\Project sind auch alle Dateien drin).
Den ins Programm eingesetzt ändert sich das angezeigte Symbol im Platzhalter. Also nicht mehr das rote X, sondern ein Image-Icon. Das Bild selbst kommt aber nicht.
Das ist hoffentlich nicht das was du im Sinne hattest. Du benutzt ja den Webserver bestimmt auch noch dazu, dass andere über ein Netzwerk auch darauf zugreifen können, oder? Dann solltest du die Bilder alle in ein Verzeichnis legen, wo der Webserver auch zugriff hat (ist ja schon) und dann dem Delphi-Programm sagen, dass alles was er nicht findet, soll er in diesem Ordner nachsehen. Heißt also: Dein Webserver prüft anhand von ARequestInfo.Document um was für eine Datei es sich handelt, die gesucht wird. Kann der Webserver das z.B. beantworten, weil er die Login-Seite schon kennt oder dynamisch zusammensetzt dann kann er hier schon antworten. Kennt er die Seite noch nicht, soll er in einem bestimmten Verzeichnis nachschauen, ob da nicht ne Datei existiert, die so heißt. Wenn ja, soll er die verschicken. Hier ist auch noch auf AResponseInfo.ContentType zu achten. Bilder lassen sich besser verschicken, wenn hier das richtige eingetragen ist. Für JPEGs gilt: "image/jpg" (nur als Hinweis).
In deiner Login-Seite sollten Pfade auf Netzlaufwerke/Festplatten/Dateien auf dem Rechner am Besten nicht vorkommen. Für das Logo kannst du ja z.B. http://127.0.0.1/img/logo.jpg nehmen. Übrigens kann dir bei solchen IP-Adressen niemand draufschauen, ob alles richtig ist.

Zitat von Ookami:
Ich hatte das Ganze als Html-Datei händisch vorbereitet, um die Angaben dann nur noch an die AResponseinfo.ContentText zu übergeben.
Bei "externen" Dateien würde ich einen TFileStream mit AResponseInfo.ContentStream verwenden. Der wird auch über das Indy-Objekt wieder freigegeben.

Benrhard
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
Benutzerbild von Ookami
Ookami

Registriert seit: 20. Nov 2009
Ort: Baden Württemberg
77 Beiträge
 
Delphi 2009 Architect
 
#6

Re: Einbindung von Grafiken in Html-Seiten

  Alt 2. Apr 2010, 16:56
Ok, Danke noch mal, auch an Dich Bernhard - Problem ist nun gelöst.

offensichtlich kennt Ihr alle euch doch viel besser aus mit den indy-Komponenten. Ich bin da erst Anfänger. Hat mich bislang einfach nie interessiert.
Aus allem, was ich bislang gefunden habe, dies auch für diejenigen, die später mal das gleiche Problem haben.

1. Ich habe nun einen Pfad unter C:\ angelegt. - C:\Project
2. Im Programm habe ich eine Pfadangabe gemacht - WebPath = 'file:///Project/';
3. Diese Pfadangabe wird mit base href im Header miterzeugt. - <base href="'+ WebPath +'">


Meine Erkenntnis aus dem Ganzen war nun die:
Es ist gleichgültig in welchem Pfad die Exe liegt, sobald sie aufgerufen wird, will sie wie in WebPath definiert auf einen sobenannten Pfad in C: zugreifen.
Da ich selbst mich mit Webanwendungen nie beschäftigt habe, kann ich leider nicht sagen, warum das so ist.
Ich fände es toll, wenn jemand noch ein paar einfache Worte dazu verlieren könnte, die diese Frage klären.


Wie Edison doch sagte, mir sind nunmehr über 8000 Wege bekannt, wie man keine Glühlampe machen kann. Der eine einzige aber hätte mir schon genügt.
Wolfgang
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#7

Re: Einbindung von Grafiken in Html-Seiten

  Alt 2. Apr 2010, 18:07
Doch nicht file:/// . Du Solltest http://127.0.0.1/ nehmen. Das funktioniert dann auch.

Bernhard
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 14:30 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf