PAGUE 6 MESES
LEVE 12 MESES
GARANTIR DESCONTO

Fórum Visualizar arquivo UploadFile #534185

10/10/2015

0

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:

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

Sgrandini

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar