fileUpload - Primefaces - RESOLVIDO

Boa tarde pessoal, tudo em ordem?
Pessoal, vamos la … estou utilizando o fileUpload do Primefaces porem ao selecionar uma imagem ele não “entra” na classe que chamo.

Xhtml

[code]<?xml version="1.0" encoding="UTF-8" ?>

[/code]

Bean

[code]package formafit.ManagedBeans;

import java.util.ArrayList;
import java.util.List;

import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.primefaces.event.FileUploadEvent;
import org.primefaces.event.FlowEvent;

import formafit.controle.ControleFactory;
import formafit.entidades.Alunos;

@ManagedBean(name = “uploadFotoBean”)
@RequestScoped
public class UploadFotoBean {

private boolean skip;

private Alunos alunos;

private List<Alunos> lstAlunos = new ArrayList<Alunos>();

public boolean isSkip() {
	return skip;
}

public void setSkip(boolean skip) {
	this.skip = skip;
}

public Alunos getAlunos() {
	return alunos;
}

public void setAlunos(Alunos alunos) {
	this.alunos = alunos;
}

public List<Alunos> getLstAlunos() {
	return lstAlunos;
}

public void setLstAlunos(List<Alunos> lstAlunos) {
	this.lstAlunos = lstAlunos;
}

  public void upload(FileUploadEvent event) {    
      
    String nomeImagem = event.getFile().getFileName();  
    
    System.out.println("nome da imagem é " + nomeImagem);

}
}
[/code]

Alguem sabe me dizer o pq não acessa, tb tentei utilizar o SessionScope e o ViewScope.

Vlwwww

O arquivo que você está enviando é compatível com os valores definidos na tag allowTypes ?

Cara se ajudar eu fiz este post http://miguellimapj.blogspot.com.br/2012/10/fileupload-primefaces.html.

Colocou o filtro no web.xml ?

Boa noite pessoal, primeiramente agradeço aos posts com ajuda.
Não respondi antes que precisei ir para ma reunião.

Rodrigo, estou subindo sim uma imagem que a extensão esta no filtro, o problema é que ele nem chama o metodo no bean, ele aparece na tela como carregando e no final nao faz mais nada.

Miguel, vi o tutorial as libs que vc mencionou eu não tenho, vou inseri-las

d34d_d3v1l, não inseri o filtro no web.xml, se não for pedir demais pode me passar um exemplo do filtro?

Pessoal, mais uma vez agradeço a ajuda de todos.
Amanha volto a mexer nisso e funcionando posto aqui.
Vlwwww

Uma boa noite a todos.

[]s

Ta bom…

Vc precisa de algumas dependencias… Mas isso vc ja deve ter cobrido ne?

o Filter no web.xml

//considere:
<servlet>
    <servlet-name>facesServlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

....

	<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>facesServlet</servlet-name>  
    </filter-mapping>  

Pessoal, primeiramente desculpem pela demora em postar o retorno.
Deu certo … muito obrigado a todos pela ajuda.
Caso alguem precise, segue o codigo que foi feito.

Jar utilizados

  • commons-io-2.4.jar
    -commons-fileupload-1.2.2.jar

web.xml

[code]

PrimeFaces FileUpload Filter org.primefaces.webapp.filter.FileUploadFilter thresholdSize 51200 PrimeFaces FileUpload Filter Faces Servlet [/code]

xhtml

[code]<?xml version="1.0" encoding="UTF-8" ?>

[/code]

Bean

[code]package formafit.ManagedBeans;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

import org.primefaces.event.FileUploadEvent;
import org.primefaces.model.DefaultStreamedContent;
import org.primefaces.model.StreamedContent;

@ManagedBean(name = “uploadFotoBean”)
@SessionScoped
public class UploadFotoBean {

public void handleFileUpload(FileUploadEvent event) {
    try {
        File targetFolder = new File("C:\\fotos");
        InputStream inputStream = event.getFile().getInputstream();
        OutputStream out = new FileOutputStream(new File(targetFolder,
                event.getFile().getFileName()));
        int read = 0;
        byte[] bytes = new byte[1024];

        while ((read = inputStream.read(bytes)) != -1) {
            out.write(bytes, 0, read);
        }
        inputStream.close();
        out.flush();
        out.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

}
[/code]

[]s