Hallo zusammen,
ich programmiere momentan ein Kundenportal und habe folgendes Problem:
In meiner Datenbank (prostgresql) hole ich mir in Base64 codierte PDF's. Nun möchte ich, dass der Kunde die PDF's nicht nur downloaden, sondern davor mithilfe eines PDF-Viewers ansehen kann.
Ich habe in den Primeface Showcases bereits ein geeignetes Tag gefunden:
Das Problem hier ist allerdings, dass ich bereits in der Geschäftslogik den Base64-String decodieren muss. Das hab ich auch gemacht. Das ganze sieht dann so aus:
[JAVA=42]
//erstellt neues Verzeichnis
boolean status;
status = new File("/home/newdir/").mkdir();
//Base64-String
String value = "/9j/4AAQSkZJRg....AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH/2Q==";
Base64 decoder = new Base64();
byte[] imgBytes = decoder.decode(value);
FileOutputStream fos = new FileOutputStream("/home/newdir/muster.pdf");
fos.write(imgBytes);
[/code]
Bis hier hin funktioniert auch noch alles wunderbar. Wenn ich nun aber mithilfe des p:media Tags die PDF anzeigen lassen möchte erscheint eben nur "Your browser can't display pdf, click to download pdf instead."
und wenn ich es stattdessen downloaden möchte zeigt er mir folgende Fehlermeldung auf:
HTTP Status 404 - /home/newdir/muster.pdf
type: Status report
message: /home/newdir/muster.pdf
description: The requested resource (/home/newdir/muster.pdf) is not available.
Die Zugriffsrechte auf das neu erstellte Verzeichnis (auch für die Ordner darüber) habe ich bereits überprüft, die passen alle.
Ich weiß wirklich nicht woran es sonst liegen könnte, dass er nicht auf den Ordner zugreifen kann.
Kann mir eventuell irgendjemand helfen oder hat eine Idee woran es liegen könnte?
Ich hoffe man kann anhand der aufgezeigten Informationen mein Problem etwas nachvollziehen.
Vielen Dank schon mal
ich programmiere momentan ein Kundenportal und habe folgendes Problem:
In meiner Datenbank (prostgresql) hole ich mir in Base64 codierte PDF's. Nun möchte ich, dass der Kunde die PDF's nicht nur downloaden, sondern davor mithilfe eines PDF-Viewers ansehen kann.
Ich habe in den Primeface Showcases bereits ein geeignetes Tag gefunden:
Code:
<!-- jsf/primefaces -->
<p:media value="/home/newdir/muster.pdf" width="100%" height="300px">
Your browser can't display pdf, <h:outputLink value="/home/newdir/muster.pdf">click</h:outputLink> to download pdf instead.
</p:media>
Das Problem hier ist allerdings, dass ich bereits in der Geschäftslogik den Base64-String decodieren muss. Das hab ich auch gemacht. Das ganze sieht dann so aus:
[JAVA=42]
//erstellt neues Verzeichnis
boolean status;
status = new File("/home/newdir/").mkdir();
//Base64-String
String value = "/9j/4AAQSkZJRg....AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH/2Q==";
Base64 decoder = new Base64();
byte[] imgBytes = decoder.decode(value);
FileOutputStream fos = new FileOutputStream("/home/newdir/muster.pdf");
fos.write(imgBytes);
[/code]
Bis hier hin funktioniert auch noch alles wunderbar. Wenn ich nun aber mithilfe des p:media Tags die PDF anzeigen lassen möchte erscheint eben nur "Your browser can't display pdf, click to download pdf instead."
und wenn ich es stattdessen downloaden möchte zeigt er mir folgende Fehlermeldung auf:
HTTP Status 404 - /home/newdir/muster.pdf
type: Status report
message: /home/newdir/muster.pdf
description: The requested resource (/home/newdir/muster.pdf) is not available.
Die Zugriffsrechte auf das neu erstellte Verzeichnis (auch für die Ordner darüber) habe ich bereits überprüft, die passen alle.
Ich weiß wirklich nicht woran es sonst liegen könnte, dass er nicht auf den Ordner zugreifen kann.
Kann mir eventuell irgendjemand helfen oder hat eine Idee woran es liegen könnte?
Ich hoffe man kann anhand der aufgezeigten Informationen mein Problem etwas nachvollziehen.
Vielen Dank schon mal
Zuletzt bearbeitet: