bonjour,
je veux télécharger des fichiers de la base de données a travers le composant de téléchargement de primefaces, alors pour cela j'ai crée une méthode qui converti le fichier du type bytes[] en StreamedContent pour permettre le téléchargement comme il est montrer dans la documentation du composant primefaces
voila mon code xhtml :
et voila mon code java :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 <ui:repeat value="#{histCommController.selectedCommande.listFichiers}" var="jjjjj"> <tr> <td> <h:outputLabel style="font-weight: bold;" value="#{jjjjj.nom}" /> </td> <td> <h:outputLabel style="font-weight: bold;" value="#{jjjjj.taille}" /> </td> <td> <p:commandButton id="downloadLink" value="Download" ajax="false" icon="ui-icon-arrowthichk-s"> <p:fileDownload value="#{jjjjj.convertFichieru}" /> </p:commandButton> </td> </tr> </ui:repeat>
byte.length retourne la longueur du fichier mais image.getContentType() retourne null : je sais pas pourquoi,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 public StreamedContent convertFichier(byte[] bytes) { InputStream is = new ByteArrayInputStream(bytes); System.out.println("size file : "+bytes.length); StreamedContent image = new DefaultStreamedContent(is); System.out.println("dans le convertisseur : "+image.getContentType()); return image; }
quelqu'un saurait il comment résoudre ce problème
merci d'avance
Partager