JTextPane "text/html" grafik implementieren...

JavaRentner

Aktives Mitglied
Hallo Wissende.

in Linux funktioniert folgender Code:
pfad = <netzlaufwerk>/nwFotos/bild.png
Java:
<img src='file://pfad' width=\"120\" height=\"80\">
... das Bild wird korrekt angezeigt.

in Windows lautet der gleiche pfad : R:\nwFotos\bild.png
Java:
<img src='file://pfad' width=\"120\" height=\"80\">
... es wird nur ein Standardsymbol angezeigt!

Frage:
Wie muss der Aufruf für: <img src='file://pfad' width=\"120\" height=\"80\">
für den Windows-Pfad geschrieben werden?

img src='file://
scheint nicht zu passen (Standardsymbol wird angezeigt -- Gösse pass aber!)

Vielen Dank.
 
Zuletzt bearbeitet:
Beste Antwort
Frage:
Wie muss der Aufruf für: <img src='file://pfad' width=\"120\" height=\"80\">
für den Windows-Pfad geschrieben werden?
Bei einer file-URI spielt es keine Rolle, ob Windows oder nicht; diese sind immer gleich aufgebaut. Richtig würde die URL z. B. file:/pfad oder file://host/pfad lauten, wobei Pfadelemente mit einem forward slash voneinander getrennt werden und host leer sein kann. file:/R:/nwFotos/bild.png bzw. file:///R:/nwFotos/bild.png wären also gültige file-URIs.
Vielen Dank.
Relative Pfad zu wo?

Habe eine NAS und dort einen Ordner "nwFotos". Darin liegt ein PNG-Objekt.. nennen wir es: "bild.png"

PC-Linux greift darauf zu mit Pfad: <netzlaufwerk>/nwFotos/bild.png
(wird korrekt angezeigt!)

PC-Win greift darauf zu mit Pfad: R:\nwFotos\bild.png
(es wird nur ein StandardSymbol angezeigt)

Auf beiden PCs kann ich es per doppelklick öffnen...

Wie erstelle ich einen relativen Pfad zur Datei "bild.png" ???
wenn mein Progrämmchen mal auf dem LINUX-PC und mal auf dem Windows-PC gestartet wird.
Wie würde dann so ein "relativer Pfad" lauten? 😕
 
In Windows müsste es in etwa so lauten:
HTML:
<img src="file:\\\r:\nwFotos\bild.jpg" alt="Keine Anzeige von Bild 1" title="Bild 1"/>
Dein NAS hat evtl. einen eingebauten Webserver, eine Nextcloud-Installation o.ä. Dann würde es sich anbieten die URLs zu den Dateien/Freigaben zu verwenden, statt der Pfade. Dann wird es unter Linux und Windows funktionieren. Also bspw.: http://<IP eg.: 192.168.178.55>/bilder/fotos/meinBild.png

Es gibt einen einfachen Trick unter Windows den richtigen Pfad inkl. der \ zu erzeugen. Man kopiert den Pfad im (Datei-)Explorer und fügt den im Firefox in die Adressleiste ein. FF ersetzt den Pfad mit der richtigen URL. Gleichzeitig kann man durch die Ordnerstruktur navigieren und weiter Dateien heraussuchen. Gleichzeitig würde man nach Zugangsdaten gefragt falls nötig und kann so feststellen ob der Zugriff möglich ist.
 
Zuletzt bearbeitet:
Also auch unter Windows kann man statt der \ einfach / nutzen - da hat man dann auch weniger Probleme mit dem Escapen und so.

Ansonsten ist es in Java Möglich, die APIs von java.io und java.nio zu nutzen. Wenn Du also eine Datei hast und Du darauf dann mit File zugreifen kannst, dann kannst du darüber auch die URL bekommen: File.toURI
(Das kann dann helfen, wenn man die URI nicht selbst aufbauen kann.)
 
Frage:
Wie muss der Aufruf für: <img src='file://pfad' width=\"120\" height=\"80\">
für den Windows-Pfad geschrieben werden?
Bei einer file-URI spielt es keine Rolle, ob Windows oder nicht; diese sind immer gleich aufgebaut. Richtig würde die URL z. B. file:/pfad oder file://host/pfad lauten, wobei Pfadelemente mit einem forward slash voneinander getrennt werden und host leer sein kann. file:/R:/nwFotos/bild.png bzw. file:///R:/nwFotos/bild.png wären also gültige file-URIs.
 
Beste Antwort
file:///R:/nwFotos/bild.png
Vielen Dank @mihe7
DAS war die Lösung!

Da der Pfad in Unix-Systemen schon mit einem "froward slash" beginnt, reicht "file://" (mit 2 forward-Slashes)
Für Windows brauchts drei "froward slashes", also "file:///" -> Das hat das Problem gelösst!!! 😄😄😄

Nochmals VIELEN Dank.

@KonradN
Danke für den Tip!
Also auch unter Windows kann man statt der \ einfach / nutzen - da hat man dann auch weniger Probleme mit dem Escapen und so.
Hatte ich iwo schon mal gelesen aber auch leider wieder vergessen! 🙁
Liegt wohl am alter...
 
Zuletzt bearbeitet:
Gibt es eine Möglichkeit, dass das Thema mit dem Post der geholfen hat, auf gelösst gesetzt werden kann!
✔️ Gelösst!

Wäre hilfreich wenn jemand genau diese Lösung sucht.
 
@KonradN
Den Post #6 würde ich gerne als Lösung setzen.

Für Windows brauchts drei "froward slashes", also "file:///"
War die Lösung des Problems.

In Unix Systemen beginnt ein echter Pfad immer mit einem froward slash, in Windows immer mit einem Laufwerkbuchstaben!
Ergo muss (java file://) in Windows immer drei froward slashes haben in Unix (Linux, Mac) nur zwei plus Pfad.

Das habe ich glaub ich jetzt Begriffen. 🙂 😉
Vielen Dank.

@mihe7
Das geht nur, wenn Du beim Erstellen des Posts eine "Frage" erstellst:
Das werde ich mir merken! Vielen Dank.
 
Zuletzt bearbeitet:

Neue Themen


Zurück
Oben