Sou nova no desenvolvimento com java e estou tendo uma grande dificuldade para trabalhar com os arquivos anexados através do componente fileUpload, do PrimeFaces.
Gostaria de saber como posso armazená-los bem como identificar seus tipos, já que na tela em que estou trabalhando qualquer tipo de arquivo pode ser anexado e não há uma quantidade limite de arquivos à serem enviados. Estou usando PrimeFaces 3.0.
Já pesquisei muuito no próprio GUJ e em outros fóruns, no entanto só encontro soluções para uploads individuais que normalmente são imagens… estou sem nem idéia de como fazer a implementação… como li em alguns foruns, pensei em armazenar inicialmente em Listas de UploadedFiles, no entanto, de acordo com a especificação que tenho, os arquivos tem que ser inicialmente armazenados em listas de bytes… ai fiquei mais perdida ainda…
Poderiam me ajudar?
// Metodo responsavel pelo upload do arquivopublicvoidcarregarArquivo(FileUploadEventevent)throwsFileNotFoundException,IOException{FacesMessagemsg=newFacesMessage("Sucesso",event.getFile().getFileName()+" foi carregado.");FacesContext.getCurrentInstance().addMessage("teste",msg);Stringcaminho=FacesContext.getCurrentInstance().getExternalContext().getRealPath(""+"\\fotos\\"+event.getFile().getFileName());byte[]conteudo=event.getFile().getContents();FileOutputStreamfos=newFileOutputStream(caminho);fos.write(conteudo);fos.close();}
// Metodo responsavel pelo download do arquivopublicclassSeuBeanimplementsSerializable{privateStreamedContentfile;publicvoidsetFile(StreamedContentfile){this.file=file;}publicStreamedContentgetFile()throwsFileNotFoundException{Stringcaminho=FacesContext.getCurrentInstance().getExternalContext().getRealPath(""+"\\fotos\\"+"nomeDoArquivo");FileInputStreamstream=newFileInputStream(caminho);returnfile=newDefaultStreamedContent(stream,caminho,"nomeDoArquivo");}}