RichFaces - Upload - PDF

Olá amigos,

Eu vou precisar desenvolver um site que faça uploads de arquivos pdf, vou utilizar o richfaces pela primeira vez, e gostaria de um exemplo de código, que gere um nome para o arquivo e grave em uma pasta do site. Eu gostaria também de saber se exise como criptografar o envio do arquivo do browser para o servidor. E por ultimo, gostaria de saber como faço para exibir o pdf de volta para o usuário, abrindo-o no browser, de preferencia eu gostaria que o arquivo fosse exibido sem ter q abrir o adobe acrobat no browser, para que o cliente q está visualizando n possa salvar o arquivo em disco.

Anteciosamente,
adiego23

Sugiro que faça o doenload do exemplo do richfaces que também pode ser visto na internet.

O link para download é http://repository.jboss.com/maven2/org/richfaces/samples/richfaces-demo/3.2.1.GA/richfaces-demo-3.2.1.GA-tomcat6.war, versão para o tomcat. Outras versões podem ser encontradas no site: http://jboss.com/index.html?module=bb&op=viewtopic&t=104575.

Quanto a visualização do pdf, no momento em que vc enviar o mimetype como pdf, o browser procurará qualquer leitor de pdf instalada, não há como, você não exigir um pdf reader no cliente.

Há uma diferença simples para fazer o download e para fazer a visualição do arquivo.


     public void view() {
	enviaArquivo(true);
    }
    public void download() {
	enviaArquivo(false);
    }
     private void enviaArquivo(boolean view) {
	HttpServletResponse response = (HttpServletResponse) FacesContext
		.getCurrentInstance().getExternalContext().getResponse();
	response.setHeader("pragma", "no-cache");
	response.setHeader("Cache-control", "no-cache");
	if (view) {
	    response.setContentType("application/pdf");
	} else {
	    response.setContentType("application/octet-stream");
	    response.setHeader("Content-Disposition", "attachment; filename=\""
		    + file.getName()+"\"");
	}
	response.setContentLength((int) file.getLength()); 
	
	try {
	    ServletOutputStream out = response.getOutputStream();
	    out.write(file.getData());
	    out.flush();
	    out.close();
	    FacesContext.getCurrentInstance().responseComplete();
	} catch (IOException e) {
	    showError(e.getMessage());
	    e.printStackTrace();
	}
    }