[PrimeFaces] <p:fileUpload> Récupération des noms des fichers à joindre
Bonjour,
j'utilise le compsant <p:fileUpload>(primefaces 5.0) et j'ai besoin de récupérer les noms des fichiers à joindre mais je ne dois pas utiliser le bouton:upload(j'ai ajouté du css pour le cacher) du composant du coup je peux pas utiliser l'action fileUploadListener
Code:
1 2
| <p:fileUpload mode="advanced" value="#{}" fileLimit="3"
invalidSizeMessage="taille document invalide" sizeLimit="100000" fileLimitMessage="vous pouvez pas joindre plusque 3 documents" label="Joindre un fichier"/> |
y'a t-il un moyen de faire ça ?
PS: j'ai essayé d'utiliser valueChangeListener mais ça marche pas. j'ai vu que c'est pas une PropertyKeys dans la classe FileUpload de primefaces
Merci pour vos réponse.
upload multiple dans un formulaire JSF
Bonsoir,
Je viens de lire la discussion sur l'upload multiple avec primeface. Moi je suis également buté sur une problème du même genre qui m'empêche vraiment d'avancer. En fait dans un formulaire, je fait de l'uploade Multiple et je souhaiterai que c'est une fois actionné sur le boutton de soumission du formulaire que les fichiers soient chargé mais pour le moment rien ne marche. J'utilise le composant : <p:fileUpload comme suit :
Code:
1 2 3 4 5
| <p:fileUpload value="#{courrierControllerBean.file}" mode="advanced" dragDropSupport="false"
multiple="true" update="messages" sizeLimit="1000000" fileLimit="3" allowTypes="/(\.|\/)(gif|jpe?g|png)$/" cancelLabel="Annuler"
label="Choisir" style="font-size: x-small" />
<p:growl id="messages" showDetail="true" /> |
le boutton de soumission du formulaire:
Code:
<p:commandButton styleClass="btn btn-small btn-success" value="#{msg['button.add']}" update=":tabCourrier, :growl" actionListener="#{courrierControllerBean.ajoutCourrier(fileUploadEvent)}" oncomplete="courrierAjout.hide()" />
le traitement dans la bean courrierControllerBean :
Code:
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 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
| /**
*
* @param event
* @return nothing
*/
public void handleFileUpload(FileUploadEvent fileUploadEvent) {
FacesMessage message = new FacesMessage("Succesful", fileUploadEvent.getFile().getFileName() + " is uploaded.");
FacesContext.getCurrentInstance().addMessage(null, message);
// Do what you want with the file
try {
System.out.println("chemin du fichier uploadé : "+fileUploadEvent.getFile().getFileName());
copyFile(fileUploadEvent.getFile().getFileName(), fileUploadEvent.getFile()
.getInputstream());
} catch (IOException e) {
e.printStackTrace();
}
}
public void copyFile(String fileName, InputStream in) {
try {
// write the inputStream to a FileOutputStream
OutputStream out = new FileOutputStream(new File("C:\\rep_omar_test_upload\\"
+ fileName));
int read = 0;
byte[] bytes = new byte[1024];
while ((read = in.read(bytes)) != -1) {
out.write(bytes, 0, read);
}
in.close();
out.flush();
out.close();
System.out.println("New file created!");
} catch (IOException e) {
System.out.println(e.getMessage());
}
}
/**
* L'ajout d'un courrier dans l bd
*/
public void ajoutCourrier(FileUploadEvent fileUploadEvent) {
try{
this.handleFileUpload(fileUploadEvent);
courrier.setDelate(false);
//courrier.setConfidentiel(0);
// courrier.setCourdate(Date.valueOf("2015-04-15"));
courrier.setCourdatemodif(Date.valueOf("2015-04-15"));
courrier.setCourdatenreg(Date.valueOf("2015-04-15"));
//courrier.setCourmots("test courmots");
//courrier.setCourobjet("objet");
//courrier.setCourobservation("observation");
courrier.setPrioritesPrioid(prioritesRessourceService.load(1));
courrier.setRefid(15042015);//doit être généré suivant une nomenclature
courrier.setStatutsStatutid(statutsRessourceService.load(1));
courrier.setTypescourriersTypecourid(typescourriersRessourceService.load(1));
Map<String,Object> session = FacesContext.getCurrentInstance().getExternalContext().getSessionMap();
User user = (User) session.get(ISessionConstant.SS_USER);
courrier.setUserid(1);
courrier.setEspaceCourrierIdEspaceCourrier(espaceCourrierRessourceService.load(2));
courrier.setUserIdUser(userRessourceService.load(3));
System.out.println("le type de courrier :"+ typecourrierid);
HttpServletRequest request=(HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest();
//traitement des fichiers
// MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
// MultipartFile fichier = multipartRequest.getFile("chemin");
//chemin complet du repertoire du projet déployé
String defaultSystemDirFileUpload = request.getSession().getServletContext().getRealPath("/");
System.out.println("chemin complet du repertoire du projet déployé :"+ defaultSystemDirFileUpload);
//Chemin du répetoire des fichier uploadé
//String destinationDirFileUpload = defaultSystemDirFileUpload.concat(VariableGlobales.REPERTOIREDESPROJETSUPLOADES);
System.out.println("chemin complet du repertoire du projet déployé :"+ typecourrierid);
courriersRessourceService.save(courrier);
this.init();
FacesContext context = FacesContext.getCurrentInstance();
context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO,"","Courrier ajoutée"));
}catch(Exception e){
e.printStackTrace();
FacesContext context = FacesContext.getCurrentInstance();
context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR,"","Echec"));
}
} |
Merci de m'apporter votre aide car j'ai lu que cela a été résolu. Merci de me donner la proceduire.