Zeige das Bild als byte[] von der Datenbank als Grafik in JSF-Seite
Habe ich Bild-Inhalte als byte[]
aus der Datenbank.
private byte[] image;
Wie kann ich zeigen, dass das byte-array als eine echte Grafik in JSF-Seite?
InformationsquelleAutor user3364181 | 2015-06-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ist dies nicht möglich, direkt mit
<h:graphicImage>
. Es kann nur eine URL, nicht um einebyte[]
nochInputStream
. Im Grunde müssen Sie sicherstellen, dass diese bytes sind direkt verfügbar als HTTP-Antwort auf die angegebene URL, die Sie dann verwenden können, in<h:graphicImage>
(oder auch nur HTML<img>
).Vorausgesetzt, dass Sie die Identifizierung der Bild-ID etwa so:
Hier ist ein kickoff-Beispiel-servlet:
Eine erweiterte abstrakte Vorlage für eine statische Ressource-servlet, die Unterstützung der HTTP-Zwischenspeicherung finden Sie im diese Antwort, zusammen mit einem konkreten Beispiel zum servieren aus der Datenbank.
Wenn Sie geschehen, JSF verwenden utility library OmniFaces auf JSF 2.2 + CDI-Umgebung, dann können Sie stattdessen verwenden Sie Ihre
<o:graphicImage>
die verwendet werden können, viel mehr intuitiv.Ja sicherlich. Siehe oben Antwort für kickoff Beispiele für zwei mögliche Wege. Verändern Sie, wenn notwendig, zu Ihrer situation passen.
Darf ich Fragen, welcher Datentyp oder aus welchem Paket Bild Bild Bild = service.find(id); Ist das Bild auf, dass die Zeile ein byte [] Blob-oder etwas anderes? Dank
Es ist nur Ihre benutzerdefinierte Klasse. Siehe auch eine.o. stackoverflow.com/q/1727603 und stackoverflow.com/q/30639785
Danke. Immer noch versuchen zu absorbieren und zu verstehen, jedes Stück.
InformationsquelleAutor BalusC
Nur binden eine String-variable zu einem Bild auf UI.
Zum Beispiel Sie laden das Bild, byte[] von der Datenbank dann die erste codieren es in base-64-Zeichenfolge.
InformationsquelleAutor Abhishek Jha