o array de bytes da variável "item" está vindo nulo. o restante dos dados do arquivo estão vindo, como nome do arquivo, tamanho etc.
só não vem o array de bytes correspondente aos dados do arquivo que foi feito o upload.
o array de bytes da variável "item" está vindo nulo. o restante dos dados do arquivo estão vindo, como nome do arquivo, tamanho etc.
só não vem o array de bytes correspondente aos dados do arquivo que foi feito o upload.
alguém tem alguma idéia do que pode ser?
abraços.
Isso já aconteceu comigo também, demorei mais de um dia pra conseguir resolver... O UploadItem é chatinho mesmo, o ideal é transferí-lo para um File normal com streaming. Enfim, comigo isso funcionou pra upload de imagens (óbvio que eu 'omiti' algumas coisas, mas acho que com essa estrutura o seu problema já pode ser resolvido
publicvoidlistener(UploadEventevent)throwsException{UploadItemupload=event.getUploadItem();if(upload.isTempFile()){Filefile=newFile("pathDoArquivo");InputStreamin=newFileInputStream(upload.getFile());OutputStreamout=newFileOutputStream(file);byte[]buf=newbyte[1024];intlen;while((len=in.read(buf))>0){out.write(buf,0,len);}in.close();out.close();//daí já dá pra usar o file como se fosse o um File normal}else{ByteArrayOutputStreamb=newByteArrayOutputStream();b.write(event.getUploadItem().getData());}}
M
mizael86
Precisa nada disso, o motivo de o getData ta vindo nulo é que a gravacao do upload em arquivo temporario está ativada, pra quem usa richfaces e ajax4jsf, basta colocar o mapeamento do filtro do richfaces dessa forma:
Setando a gravacao em arquivo temporario como false, o arquivo virá no getData normalmente. Flw
J
jessicabnu
Boa tarde…
Estou com dificuldade em aplicar o fileupload, então segui a exemplo acima. Adicionei o método acima e o filtro, porém esta gerando um erro e a página nem é exibida:
[color=red]SEVERE: Exception starting filter richfaces[/color]