[RESOLVIDO]ajuda fileupload do primefaces

Boa noite pessoal, tudo bem? estou precisando de um help aqui hehe
Bom, preciso salvar uma imagem no meu banco de dados.
imagem é um campo BLOB no meu banco(mysql)

tento salvar um byte[] mas ele sempre me retorna nulo e não salva.

meu xhtml

<h:form id="form" enctype="multipart/form-data">
              
                <p:panel header="#{msg.TEMAS_TITULO}">
                    <h:panelGrid columns="2">
                        <h:outputText value="#{msg.LABEL_DESCRICAO_TEMA}" />
                        <p:inputText value="#{temaMB.tema.descricao}" />
                        
                        <h:outputText value="#{msg.LABEL_ESCOLHA_IMAGEM_TEMA}" />
                        <p:fileUpload  fileUploadListener="#{temaMB.handleFileUpload}" update="messages"   />
                    
                    </h:panelGrid >
                                       
                    <p:commandButton action="#{temaMB.salvar}" value="submit" />
                </p:panel>
                <p:growl id="messages" showDetail="true" />
                
                
            </h:form>

meu Managed Bean


@ManagedBean
@RequestScoped
public class TemaMB implements Serializable {

    private Tema tema = new Tema();
    private TemasDAO dao = new TemasDAO();

    public Tema getTema() {
        return tema;
    }

    public void setTema(Tema tema) {
        this.tema = tema;
    }

    public void handleFileUpload(FileUploadEvent evento) {
        byte[] foto = evento.getFile().getContents();
        tema.setImagem(foto);

    }

    public String salvar() {
        String outcome = "FALHA";

        if (dao.salvar(tema)) {
            outcome = "SUCESSO";
        }
        return outcome;

    }
}

e por fim meu dao


public class TemasDAO extends AbstractDAO<Tema> {

    @Override
    public boolean salvar(Tema tema) {
        Connection conexao = null;
        boolean salvo = false;
        PreparedStatement ps;
        
        try {
            conexao = GerenciadorConexoes.pegarInstancia().abrirConexao();
            String query = GerenciadorConexoes.pegarInstancia().pegarPropriedade("SALVAR_TEMA");
            ps = conexao.prepareStatement(query);
            ps.setString(1, tema.getDescricao());
            ps.setBytes(2, tema.getImagem()); // aqui ele me retorna nulo e não salva no banco 
            
            if(ps.executeUpdate()>0){
                salvo = true;
            }            
        } catch (SQLException e) {
            e.printStackTrace();
        }finally{
            GerenciadorConexoes.pegarInstancia().fecharConexao(conexao);
        }
        
        return salvo;
    }

se alguem puder me ajudar agradeço
abraços

Está chegando null pois seu bean deve estar num escopo maior do que request…

Use @Viewscoped ou @SessionScoped

:o
resolvido
ahuahuhuahuauhhua
agradecido :slight_smile:

Caraca… meu codigo ta identico ao seu … tentei isso dai e não funcionou… vai lá saber o que é isso…