Visualizar arquivo UploadFile
Pessoal,
Preciso implementar um método para visualizar os arquivos carregados. Consegui encontrar um código que faz o carregamento dos arquivos. Mas o site que contém este código não tem um método para visualização dos arquivos. Então, busquei em outro site um método para visualização, só que não sei como fazer as alterações necessárias. Alguém poderia me dar uma ajuda?
Segue abaixo os métodos para upload que encontrei e que funcionam:
Este é o código para visualização:
Obrigada.
Preciso implementar um método para visualizar os arquivos carregados. Consegui encontrar um código que faz o carregamento dos arquivos. Mas o site que contém este código não tem um método para visualização dos arquivos. Então, busquei em outro site um método para visualização, só que não sei como fazer as alterações necessárias. Alguém poderia me dar uma ajuda?
Segue abaixo os métodos para upload que encontrei e que funcionam:
public void transferirArquivo (String fileName, InputStream in) {
try {
OutputStream out = new FileOutputStream(new File(diretorio + fileName));
int reader = 0;
byte[] bytes = new byte[(int)getFile().getSize()];
while ((reader = in.read(bytes)) != -1) {
out.write(bytes, 0, reader);
}
in.close();
out.flush();
out.close();
} catch (IOException e) {
System.out.println(e.getMessage());
}
}
public void upload() {
String extValidate;
if (getFile() != null) {
String ext = getFile().getFileName();
if (ext != null) {
extValidate = ext.substring(ext.indexOf(".")+1);
}
else {
extValidate = "null";
}
if (extValidate.equals("pdf")) {
try {
transferirArquivo(getFile().getFileName(), getFile().getInputstream());
} catch (IOException ex) {
Logger.getLogger(ArquivoBean.class.getName()).log(Logger.Level.FATAL, null, ex);
FacesUtil.addErrorMessage("Erro ao enviar arquivo!");
}
FacesUtil.addInfoMessage("Arquivo enviado com sucesso!");
}
else {
FacesUtil.addErrorMessage("Anexar apenas arquivo com extensão .pdf!");
}
}
else {
FacesUtil.addErrorMessage("Selecione um arquivo!");
}
}
Este é o código para visualização:
public void visualizar() {
FacesContext fc = FacesContext.getCurrentInstance();
// Obtem o HttpServletResponse, objeto responsável pela resposta do
// servidor ao browser
HttpServletResponse response = (HttpServletResponse) fc
.getExternalContext().getResponse();
// Limpa o buffer do response
response.reset();
// Seta o tipo de conteudo no cabecalho da resposta. No caso, indica que o
// conteudo sera um documento pdf.
response.setContentType("application/pdf");
// Seta o tamanho do conteudo no cabecalho da resposta. No caso, o tamanho
// em bytes do pdf
response.setContentLength(conteudo.length);
// Seta o nome do arquivo e a disposição: "inline" abre no próprio
// navegador.
// Mude para "attachment" para indicar que deve ser feito um download
response.setHeader("Content-disposition", "inline; filename=arquivo.pdf");
try {
// Envia o conteudo do arquivo PDF para o response
response.getOutputStream().write(conteudo);
// Descarrega o conteudo do stream, forçando a escrita de qualquer byte
// ainda em buffer
response.getOutputStream().flush();
// Fecha o stream, liberando seus recursos
response.getOutputStream().close();
// Sinaliza ao JSF que a resposta HTTP para este pedido já foi gerada
fc.responseComplete();
} catch (IOException e) {
e.printStackTrace();
}
}
Obrigada.
Sgrandini
Curtidas 0