JSF 2 - Como fazer upload sem usar bibliotecas?

JSF 2 - Como fazer upload sem usar bibliotecas?

Cara, quando precisei fazer uma aplicação com JSF e suporte a upload de arquivo as opções que achei disponiveis foram conjuntos de componentes ou cria um Servlet.
Optei por usar um conjunto de componentes (PrimeFaces) por ser mais prático e fácil.

Da uma pesquisada sobre Servlet que você pode encontrar como fazer isso que está querendo.
Abraços…

Só com Servlet mesmo, eu tambem usava o primeFaces mas ele não funciona em HTTPS, então eu fiz assim:

<form action="#{facesContext.externalContext.requestContextPath}/panel/uploadServlet.do" enctype="multipart/form-data" method="post">
	<input type="file" name="file1" size="50" accept="text/xml"/><br/>
        <input type="submit" value="Reprocessar"/>
</form>

e cria uma Servlet (vou colocar aqui só a parte que te interessa):

DiskFileItemFactory fileItemFactory = new DiskFileItemFactory();
		fileItemFactory.setSizeThreshold(1 * 1024 * 1024); //1 MB

		ServletFileUpload uploadHandler = new ServletFileUpload(fileItemFactory);
		uploadHandler.setSizeMax(1024 * 1024);
		try {
			List items = uploadHandler.parseRequest(request);
			Iterator itr = items.iterator();
			byte[] bs = null;
			
			while (itr.hasNext()) {
				FileItem item = (FileItem) itr.next();
				if (!item.isFormField()) {
					int size = item.getInputStream().available();
					bs = new byte[size];
					item.getInputStream().read(bs);
				}
			}
                        //Pronto aqui seu bs está carregado com os bytes do arquivo que foi feito upload

Valeu funcionou…