Boa tarde galera! Estou desenvolvendo uma função para inserção de imagens a produtos de um sistema, porém estou tendo problemas com o Fileupload. Quando clico no botão upload ele não chama o evento, se alguém tiver conhecimento e puder me ajudar, segue abaixo o código.
Código de ação do botão.
<p:outputLabel value="Imagem: " for="foto" />
<p:fileUpload id="foto" mode="advanced" fileUploadListener="#{produtoBean.upload}" update=":mensagem" auto="false" />
Web.xml
<!-- Nome da Aplicação -->
<display-name>Riverp</display-name>
<!-- Estágio do Projeto -->
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
</context-param>
<!-- Configuração do JSF -->
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
<listener>
<listener-class>br.com.riverp.util.HibernateContexto</listener-class>
</listener>
<context-param>
<param-name>primefaces.UPLOADER</param-name>
<param-value>native|commons</param-value>
</context-param>
<context-param>
<param-name>primefaces.UPLOADER</param-name>
<param-value>auto|native|commons</param-value>
</context-param>
</web-app>
ProdutoBean.java
public void upload(FileUploadEvent evento){
try {
UploadedFile arquivoUpload = evento.getFile();
Path arquivoTemp = Files.createTempFile(null, null);
Files.copy(arquivoUpload.getInputstream(), arquivoTemp, StandardCopyOption.REPLACE_EXISTING);
produto.setCaminho(arquivoTemp.toString());
}catch (IOException erro) {
Messages.addFlashGlobalError("Ocorreu um erro ao carregar a imagem.");
erro.printStackTrace();
}
}
Já baixei e instalei as bibliotecas commons-fileupload e commons-io