Roger75
Fevereiro 10, 2011, 3:08pm
#1
Estou tentando usar o componente de upload de arquivos do Primefaces, mas não está chamando o método do bean… por que será?
<h:body>
<h:form>
<p:fileUpload fileUploadListener="#{uploadBean.up}" />
</h:form>
</h:body>
[code]@RequestScoped
@ManagedBean
public class UploadBean {
public void up(FileUploadEvent event) {
UploadedFile file = event.getFile();
System.out.println(">>> Nome do arquivo="+file.getFileName());[/code]
Não aparece este println no console do Glassfish…
E ai cara beleza??
O componente fileUpload do primefaces necessita de configurações adicionais do web.xml, verifique se você fez isso.
Caso não tenha feito adicione as seguinte linhas ao 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>
Lembre-se também que para funcionar esse componente precisa das bibliotecas:
commons-fileupload (1.2.1)
commons-io (1.4)
Abraços
Esse artigo citado ai em cima e bacana… =)
Me ajudou muito quando precisei implementar um upload de arquivo…
Outra coisa, so consegui implementar mudando o escopo do bean para session,
como request não funcionou não…
Abraços
Roger75
Fevereiro 10, 2011, 3:37pm
#5
Valeu, era o filter mesmo.
Roger75
Fevereiro 10, 2011, 3:46pm
#6
Fez o upload, mas deu erro ao abrir o arquivo. Um arquivo txt subiu, mas ficou com conteúdo em branco, e um jpg não mostra a imagem, ao tentar abrir…
Roger75
Fevereiro 10, 2011, 4:50pm
#7
Ops, era um pequeno erro na manipulação do FileOutputStream… agora deu certo.
Posta o código da solução cara,
assim outras pessoas terão um exemplo para se basear.
Abraços
Roger75
Fevereiro 11, 2011, 10:09am
#9
O erro que estava dando era porque não estava dando write no novo arquivo.
[code] UploadedFile file = event.getFile();
try {
FileOutputStream outPutStream = new FileOutputStream(
"C:\\temp\\upload\\"
+ file.getFileName());
outPutStream.write(file.getContents());
outPutStream.flush();
outPutStream.close();
}
[/code]
Bom dia,
Estou usando o primefaces 3.3.1, adicionei o filtro no web.xml, porém o eclipse me mostra a seguinte mensagem:
O meu bean continua sem ser chamado pelo componente de upload do primefaces.
Alguém sabe o que pode ser?