[resolvido]Primefaces fileupload

10 respostas
C

Estou com um problema com o componente do primefaces fileupload não estou conseguindo usa-lo

Minha página xhtml

<ui:define name="content">
        <h:form styleClass="well form-horizontal" >
            <fieldset>
                <legend>Cadastro Assinatura Comandante</legend>

                <p:growl id="messages" autoUpdate="true" showDetail="true" />
                
                <div class="control-group" >
                    <h:outputLabel value="Descrição" styleClass="control-label" />
                    <div class="controls">
                        <p:inputText styleClass="input input-xlarge" value="#{assinaturaController.assinatura.descricao}"
                                     required="true" requiredMessage="Campo Descrição é obrigátorio"/>
                    </div>
                </div>
                
                <div class="control-group" style="padding-bottom: 20px;">
                    <h:outputLabel value="Imagem" styleClass="control-label" />
                    <div class="controls">
                        <p:fileUpload fileUploadListener="#{assinaturaController.fileUploadedListener}"  
                                        mode="simple"  
                                        auto="true"
                                        update="messages"  
                                        sizeLimit="100000" 
                                        allowTypes="/(\.|\/)(gif|jpe?g|png)$/"/>  
                    </div>
                </div>
                
                Assinatura
                <p:editor width="550" height="300" value="#{assinaturaController.textEditor}"
                          required="true"
                          requiredMessage="Campo Assinatura é obrigatorio"
                          style="padding-bottom: 20px;" />
  
                <div class="form-actions">
                    <p:commandButton value="Salvar" type="submit" styleClass="btn" 
                                     actionListener="#{assinaturaController.salvarAtualizar()}" />
                    <p:commandButton value="Cancelar" type="reset" styleClass="btn" 
                                     style="margin-left: 10px;"/>
                </div>
                
            </fieldset>
        </h:form>
    </ui:define>

metodo do managed bean, que deveria cair o evento do fileupload, mas naum chega nele nem com reza braba

public void fileUploadedListener(FileUploadEvent event) {
        System.out.println(event.getFile().getFileName());
        fileUpload = event.getFile();
        FacesMessage m = new FacesMessage(FacesMessage.SEVERITY_INFO, "TESTE", event.getFile().getFileName());
    }

e as configurações no web xml que vi topicos na net dizendo ser necessarias

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

se alguem poder me ajudar fico muito acredecido…

10 Respostas

R

no showcase o modo simples não usa listener, e nem é compatível com auto se não me engano.

R

e se usa o modo simples tem que estar em um form com enctype=“multipart/form-data”

D

E, se for mudar para o modo advanced, precisará colocar o managedbean em SessionScoped.

C

assim tambem naum funciona

<h:form styleClass="well form-horizontal" enctype="multipart/form-data">
            <fieldset>
                <legend>Cadastro Assinatura Comandante</legend>

                <p:growl id="messages" autoUpdate="true" showDetail="true" />
                
                <div class="control-group" >
                    <h:outputLabel value="Descrição" styleClass="control-label" />
                    <div class="controls">
                        <p:inputText styleClass="input input-xlarge" value="#{assinaturaController.assinatura.descricao}"
                                     required="true" requiredMessage="Campo Descrição é obrigátorio"/>
                    </div>
                </div>
                
                <div class="control-group" style="padding-bottom: 20px;">
                    <h:outputLabel value="Imagem" styleClass="control-label" />
                    <div class="controls">
                        <p:fileUpload value="#{assinaturaController.fileUpload}"
                                        mode="simple"  
                                        sizeLimit="100000" 
                                        allowTypes="/(\.|\/)(gif|jpe?g|png)$/"/>  
                    </div>
                </div>
R

Não faltou um botão aí pra fazer o submit ?

C

o botao existe so naum postei o codigo todo
agora vou colocar o codigo todo

<ui:define name="content">
        <h:form styleClass="well form-horizontal" enctype="multipart/form-data">
            <fieldset>
                <legend>Cadastro Assinatura Comandante</legend>

                <p:growl id="messages" autoUpdate="true" showDetail="true" />
                
                <div class="control-group" >
                    <h:outputLabel value="Descrição" styleClass="control-label" />
                    <div class="controls">
                        <p:inputText styleClass="input input-xlarge" value="#{assinaturaController.assinatura.descricao}"
                                     required="true" requiredMessage="Campo Descrição é obrigátorio"/>
                    </div>
                </div>
                
                <div class="control-group" style="padding-bottom: 20px;">
                    <h:outputLabel value="Imagem" styleClass="control-label" />
                    <div class="controls">
                        <p:fileUpload value="#{assinaturaController.fileUpload}"
                                        mode="simple" />  
                    </div>
                </div>
                
                Assinatura
                <p:editor width="550" height="300" value="#{assinaturaController.textEditor}"
                          required="true"
                          requiredMessage="Campo Assinatura é obrigatorio"
                          style="padding-bottom: 20px;" />
  
                <div class="form-actions">
                    <p:commandButton value="Salvar" type="submit" styleClass="btn" 
                                     actionListener="#{assinaturaController.salvarAtualizar()}" />
                    <p:commandButton value="Cancelar" type="reset" styleClass="btn" 
                                     style="margin-left: 10px;"/>
                </div>
                
            </fieldset>
        </h:form>
    </ui:define>
R

esquece o ajax no modo simples, amigão…

ajax=“false” nele

C

digaoneves nem existe a propriedade ajax neste componente…

J

coloca o filtro no seu 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>
C

isso mesmo digaoneves, confundi quando voce me falo mas me toquei que o ajax era no botao e funcionou perfeitamente

valeu pela atenção…

Criado 26 de setembro de 2012
Ultima resposta 26 de set. de 2012
Respostas 10
Participantes 4