Bonjour,
J'ai un souci avec FileUpload. En fait je fais l'upload sans problème dans un dossier sur le C:\ puisque si je le fais dans l'application, il est supprimé après un clean de JBoss. Mais après j'aimerais afficher ces images qui ont le lien stocké dans la table de ma BD et c'est là qu'il y a un problème, car je n'arrive pas à y accéder depuis l'application.
Voici mon code:La page upload:
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
20
21 public void upload(FileUploadEvent event) throws Exception { System.out.println("debut 0"); UploadedFile item = event.getFile(); System.out.println("debut 1"); // String newName = jsf.util.JsfUtil.getRandomName(); String newName = event.getFile().getFileName();// "rep";String.format("%.%", RandomStringUtils.randomAlphanumeric(8)); String parts[] = item.getFileName().replace(".", "@").split("@"); // String ext = parts[parts.length - 1]; newName = "C://uploads/dossier/"; //+ newName ;//+ "." + ext; File NewDoc=new File(newName,event.getFile().getFileName()); //if(!NewDoc.exists()) NewDoc.mkdirs(); System.out.println("debut up2"); File path = NewDoc; // String path = FacesContext.getCurrentInstance().getExternalContext().getRealPath(newName); java.io.FileOutputStream fos = new java.io.FileOutputStream(path); fos.write(item.getContents()); System.out.println("V=" + item.getFileName() + "/" + newName); this.dossierTechnique.setDossier(newName); }Et la page qui affiche les données de la table
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
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:p="http://primefaces.org/ui"> <ui:composition template="/Views/Template/common.xhtml"> <ui:define name="Consultation"> <p:growl id="growl" showDetail="true" sticky="false" /> <h:form > <h:panelGrid id="display" columns="2" cellpadding="4" style="margin:0 auto;"> <f:facet name="header"> <h:outputLabel value="Dossier technique"/> </f:facet> <h:outputLabel for="Vehicule" value="Vehicule:" style="color: crimson;"/> <h:selectOneMenu id="Vehicule" value="#{dossierTechniqueBean.immat}" effect="fold" editable="true"> <f:selectItem itemLabel="Choisir " /> <f:selectItems value="#{vehiculeBean.allVehicule}" var="vehicule" itemLabel="#{vehicule.immat}" itemValue="#{vehicule.immat}"/> </h:selectOneMenu> <h:outputLabel for="libelle" title="libelle" value="Libelle" style="color: crimson;"/> <h:inputText value="#{dossierTechniqueBean.dossierTechnique.libelle}" id="libelle" required="true"/> <h:outputLabel for="date1" title="date1" value="Date" style="color: crimson;"/> <h:outputLabel for="date2" title="date2" value="Date expiration" style="color: crimson;"/> <p:calendar locale="fr" value="#{dossierTechniqueBean.dossierTechnique.date1}" id="date1" datePattern="dd/MM/yyyy"></p:calendar> <p:calendar locale="fr" value="#{dossierTechniqueBean.dossierTechnique.date2}" id="date2" datePattern="dd/MM/yyyy"></p:calendar> <h:form enctype="multipart/form-data"> <p:fileUpload acceptedTypes="pdf,doc,docx" id="dossier" fileUploadListener="#{dossierTechniqueBean.upload}" label="Charger" uploadLabel="Ajouter" cancelLabel="Effacer tout" clearLabel="Effacer" /> <h:message for="dossier"/> </h:form> </h:panelGrid> <p:separator/> <h:commandButton id="btn_add" value="Enregistrer" action="#{dossierTechniqueBean.editDossier}" /> <p:commandButton value="Reset" type="reset" /> </h:form> </ui:define> </ui:composition> </html>Quelqu'un saurait-il m'indiquer comment rendre un dossier accessible depuis le C: ?
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
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:p="http://primefaces.org/ui"> <ui:composition template="/Views/Template/common.xhtml"> <ui:define name="Consultation"> <h:form id="form-liste-document"> <h:commandButton styleClass="bouton" action="#{dossierTechniqueBean.allDossierTechnique}" value="Nouveau document" /> <h:commandButton styleClass="bouton" action="listeFormations" value="Retour" /> <p:dataTable value="#{dossierTechniqueBean.alldossierTechnique}" var="dossierTechnique" id="table" rows="10" styleClass="tbl-liste"> <p:column> <f:facet name="header"> <h:outputText value="Titre"/> </f:facet> <h:outputText value="#{dossierTechnique.idDossier}" /> </p:column> <p:column> <f:facet name="header"> <h:outputText value="Vehicule"/> </f:facet> <h:outputText value="#{dossierTechnique.vehicule.immat}" /> </p:column> <p:column> <f:facet name="header"> <h:outputText value="Libelle"/> </f:facet> <h:outputText value="#{dossierTechnique.libelle}" /> </p:column> <p:column> <f:facet name="header"> <h:outputText value="Date"/> </f:facet> <h:outputText value="#{dossierTechnique.date1}" /> </p:column> <p:column> <f:facet name="header"> <h:outputText value="Date expiration"/> </f:facet> <h:outputText value="#{dossierTechnique.date2}" /> </p:column> <p:column> <f:facet name="header"> <h:outputText value="Dossier"/> </f:facet> <h:outputLink target="_blank" value="#{dossierTechnique.dossier}"> <h:graphicImage styleClass="icon-action icon-documents" title="Ouvrir" /> </h:outputLink> </p:column> <!-- <p:column id="col-actions"> <f:facet name="header"> <h:outputText value="Actions"/> </f:facet> <h:commandLink action="#{documentController.formEdit}"> <h:graphicImage styleClass="icon-action icon-edit" title="Modifier" /> <f:setPropertyActionListener value="#{item}" target="#{documentController.current}" /> </h:commandLink> <h:commandLink action="#{documentController.delete}" onclick="return confirm('Voulez-vous vraiment supprimer ?')"> <h:graphicImage styleClass="icon-action icon-delete" title="Supprimer" /> <f:setPropertyActionListener value="#{item}" target="#{documentController.current}" /> </h:commandLink> </p:column> --> </p:dataTable> </h:form> </ui:define> </ui:composition> </html>
J'ai lu quelque part qu'on pouvait rendre un dossier accessible avec quelques manipulations dans Jboss-web.xml mais je n'ai pas ce fichier chez moi.
Merci d'avance pour votre aide.
Partager