FileUpload não funciona

1 resposta
M

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
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));
   }
}
index.xhtml
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:p="http://primefaces.org/ui">
    <h:head>
        <title>Teste Upload 2</title>
    </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>
</html>

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!!

1 Resposta

M

Bom, acabei descobrindo o problema, o fileUpload do Primefaces 3.5 não funciona no Glassfish 4.0, instalei o Glassfish 3.1.2 e criei um projeto JavaEE 6, o compontente funcionou de primeira!!

referencia: http://stackoverflow.com/questions/18817044/primefaces-fileuploadlistener-is-not-invoked

Criado 8 de janeiro de 2014
Ultima resposta 9 de jan. de 2014
Respostas 1
Participantes 1