Olá, já tentei muita coisa e vi que várias pessoas também tiveram problemas para fazer esse componente funcionar.
Estou usando:
Glassfish 4.0
Primefaces 3.5
commons-fileupload-1.3
commons-io-2.4
Os jars estão na pasta Libraries (projeto web do Netbeans) e dentro da pasta …\AppData\Roaming\NetBeans\7.3.1\config\GF3\domain1\lib
web.xml
<filter>
<filter-name>PrimeFaces FileUpload Filter</filter-name>
<filter-class>
org.primefaces.webapp.filter.FileUploadFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>PrimeFaces FileUpload Filter</filter-name>
<servlet-name>Faces Servlet</servlet-name>
</filter-mapping>
FileUploadMB.java
[code]package br.com.teste.controller;
import java.io.Serializable;
import javax.enterprise.context.SessionScoped;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.inject.Named;
import org.primefaces.event.FileUploadEvent;
import org.primefaces.model.UploadedFile;
@Named
@SessionScoped
public class FileUploadMB implements Serializable{
private static final long serialVersionUID = 1L;
public FileUploadMB(){
}
public void doUpload(FileUploadEvent fileUploadEvent) {
System.out.println("Chegou aqui..................");
UploadedFile uploadedFile = fileUploadEvent.getFile();
String fileNameUploaded = uploadedFile.getFileName();
long fileSizeUploaded = uploadedFile.getSize();
String infoAboutFile = "<br/> Arquivo recebido: <b>" +fileNameUploaded+"</b><br/>"+
"Tamanho do Arquivo: <b>"+fileSizeUploaded+"</b>";
FacesContext facesContext = FacesContext.getCurrentInstance();
facesContext.addMessage(null, new FacesMessage("Sucesso", infoAboutFile));
}
}[/code]
index.xhtml
[code]
<h:head>
Teste Upload 2
</h:head>
<h:body>
<h:form enctype=“multipart/form-data”>
<p:fileUpload fileUploadListener="#{fileUploadMB.doUpload}"
showButtons="false"
label="Procurar…"
auto=“true”/>
</h:form>
<p:messages severity=“info” escape=“false” showDetail=“true” autoUpdate=“true” closable=“true”/>
</h:body>
Bem básico mesmo. Mesmo assim não funciona, seleciono o arquivo para upload, até mostra a barra de progresso, mas a mensagem do p:messages não aparece, nem mesmo o System.out que coloquei no método é executado.
Alguém tem ideia do que pode ser?
Obrigado!!