Bom dia pessoal, estou fazendo um sistema usando JSF 2.2 e primefaces 5.3 .
O que esta acontecendo é o seguinte, quando uso o file upload no modo basic ele vem o arquivo e consigo trabalhar com ele normalmente, porém quando tento usar ele no mode= advanced, o botao choose para escolher abre a janela para escolher o arquivo, porem ao selecionar ele volta como se nada tivesse acontecido
O que já fiz:
Configuracao no web.xml
Download do commons io e commons fileupload
form com enctype e sem enctype
eu realmente estou perdido… qualquer ajuda sera bem vinda hehe
olha a imagem abaixo e como esta funcionando o componente
mesmo depois de escolher o arquivo, ele continua desse jeito
Estou nessa mesma situação. Inclusive, estou usando as mesma bibliotecas que você. Por acaso, você conseguiu resolver essa questão? Se sim, poderia postar a solução?
Não é questão de obrigação ou não. É necessidade. O fileupload do Primefaces foi o componente que encontrei que atenderia, a princípio, minha necessidade. Infelizmente, não funcionou. Mas, se tivesse dado certo, eu não me importaria se fosse engessado ou não. O importante é funcionar. O resto é questão de gosto. Mas que bom que existem outras soluções para o meu caso. Obrigada por compartilhar.
Esqueci de mencionar uma coisa: como fica a gravação do arquivo na pasta que eu defini e também o download do arquivo? Como vou fazer a chamada do método “upload”, no meu caso, usando html? Se você puder me responder isso, eu uso essa solução.
Se eu não conseguir fazer a chamada do método upload, por exemplo, vou ficar engessada da mesma forma, mesmo com essa solução aparentemente mais simples e flexível.
Upload é um simples input do Html, o resto é programação java script e estilização com CSS. Não tem nada de engessado nisso, fica tudo ao seu controle. Além de ter várias soluções mastigadas como a que passei. Já o JSF fica dependente da caixa preta funcionar.
Mas me tira uma dúvida, sem querer abusar da tua boa vontade e já me desculpando pela minha ignorância… Como faço pra fazer a chamada ao método e gravar o arquivo numa pasta usando o jquery file upload? No inputfile do jsf ou no próprio fileupload do primefaces (modo simples) a gente usa o atributo “value” e coloca um commandButton chamando o método. Como fazer isso com html e jquery? Esse é o meu dilema.
Mas recomendo começar aprendendo do zero ao invés de apenas usar componentes prontos. Só te mostrei esse por você ser acostumada com componentes. Eu por exemplo não uso componente pronto, nem acho necessário jquery para esta parte.
Basicamente é isso:
HTML:
<input id="inputUpload" type="file" />
JS:
var form = document.getElementById('inputUpload');
var formData = new FormData(form);
var xhr = new XMLHttpRequest();
xhr.open('POST', '/CaminhoDoServicoJavaServer...', true);
xhr.send(formData);
De resto você programa e estiliza conforme a necessidade. O que Primefaces faz é gerar automaticamente HTML/JS/CSS. Voce programando por conta própria fica tudo ao seu controle.