Bonjour,
je veux créer un bouton qui me permet d'uploader des fichiers dans un dossier( dans mon cas: c:\tmp).lorsque je clik sur "choose" pour uploader mon ficher, ce dernier s'affiche sur l'ecran avec une barre de progression du telechargement.mais une fois que je click sur le bouton upload mon fichier disparait de la page.xhtml et mon dossier (c:\tmp) est toujours vide.
je vais poster tout mon code en espérant que quelqu'un puisse m'aider.
le code XHTML
voici le code du java Bean
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 <?xml version='1.0' encoding='UTF-8' ?> <!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"> <h:head> <title>file uplaod</title> </h:head> <h:body> <h:form enctype="multipart/form-data" prependId="false"> <!-- <p:growl id="messages" showSummary="true" showDetail="true" />--> <p:growl id="messages" showSummary="true" showDetail="true" autoUpdate="true" /> <p:fileUpload fileUploadListener="#{com.bean.uploadBean.handleFileUpload}" invalidFileMessage="wrong file.please select an Excel file" invalidSizeMessage="the size can not be larger than 10Mo" sizeLimit="10000000" showButtons="true" allowTypes="/(\.|\/)(csv|xls|xlst)$/" /> </h:form> </h:body> </html>
et enfin voici mon web.xml
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 /* * To change this template, choose Tools | Templates * and open the template in the editor. */ package com.bean; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import javax.faces.application.FacesMessage; import javax.faces.context.ExternalContext; import javax.faces.context.FacesContext; import org.primefaces.event.FileUploadEvent; import javax.faces.bean.ManagedBean; /** * * @author Haythem */ @ManagedBean public class UploadBean { // private static final int BUFFER_SIZE = 6124; private static final int BUFFER_SIZE = 1024; /** Creates a new instance of UploadBean */ public UploadBean() { } public void handleFileUpload(FileUploadEvent event) { ExternalContext extContext = FacesContext.getCurrentInstance(). getExternalContext(); // try { File result = new File(extContext.getRealPath("C://tmp") + "//" + event.getFile().getFileName()); FileOutputStream fileOutputStream = new FileOutputStream(result); byte[] buffer = new byte[BUFFER_SIZE]; int bulk; InputStream inputStream = event.getFile().getInputstream(); while (true) { bulk = inputStream.read(buffer); if (bulk < 0) { break; } fileOutputStream.write(buffer, 0, bulk); fileOutputStream.flush(); } fileOutputStream.close(); inputStream.close(); FacesMessage msg = new FacesMessage("Succesful", event.getFile().getFileName() + " is uploaded."); FacesContext.getCurrentInstance().addMessage(null, msg); } catch (IOException e) { e.printStackTrace(); FacesMessage error = new FacesMessage("The files were not uploaded !"); FacesContext.getCurrentInstance().addMessage(null, error); } } }
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 <?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> <context-param> <param-name>javax.faces.VALIDATE_EMPTY_FIELDS</param-name> <param-value>true</param-value> </context-param> <!-- for uploading files --> <context-param> <param-name>javax.faces.STATE_SAVING_METHOD</param-name> <param-value>server</param-value> </context-param> <!-- for uploading files --> <context-param> <param-name>primefaces.THEME</param-name> <param-value>ui-lightness</param-value> </context-param> <servlet> <servlet-name>Faces Servlet</servlet-name> <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>/faces/*</url-pattern> </servlet-mapping> <session-config> <session-timeout> 30 </session-timeout> </session-config> <welcome-file-list> <welcome-file>faces/login-input.xhtml</welcome-file> </welcome-file-list> <!--File upload commons --> <filter> <filter-name>PrimeFaces FileUpload Filter</filter-name> <filter-class>org.primefaces.webapp.filter.FileUploadFilter</filter-class> <init-param> <param-name>thresholdSize</param-name> <param-value>51200</param-value> </init-param> <init-param> <param-name>uploadDirectory</param-name> <param-value>C:\tmp</param-value> </init-param> </filter> <filter-mapping> <filter-name>PrimeFaces FileUpload Filter</filter-name> <servlet-name>Faces Servlet</servlet-name> </filter-mapping> <!--File upload commons --> </web-app>
Partager