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();
}
}