Visualizar arquivo e imagem

10 respostas
E

Boa noite, Pessoal

eu tenho um projeto JSF os seguinte codigo para retornar uma imagem e documento (pdf, xlsx…) do banco MySQL:

if(extensao.equals("png")){
            String mime = "image/" + extensao;
            //arquivo.converteImagem(bytes, nome, extensao);
            response.setContentType(mime);
            OutputStream outputStream = response.getOutputStream();
            outputStream.write(bytes);
            outputStream.flush();
            outputStream.close();
        }
        
        if( (extensao.equals("pdf")) || (extensao.equals("xlsx")) ){
            //arquivo.converteDoc(bytes, nome, extensao);
            response.setContentType("APPLICATION/OCTET-STREAM");
            response.setHeader("Content-Disposition", "attachment;filename=" + nome);
            response.getOutputStream().write(bytes);
        }

como eu faço para jogar esse conteudo em um
<h:graphicImage e <h:outputLink ?

grato

10 Respostas

A

você tem que identificar o que vai ser o retorno pra poder jogar aonde você quer, se tudo for em formato de arquivo para download, manda apenas pro outputlink

E

na verdade as imagens eu queria visualizar na tela e o pdf deixar para download

A

o jsf não identifica sozinho qual o tipo de arquivo ou extensão, tu tem que lançar alguma condição e identificar na tua página

E

andre.froes
quanto a isso tranquilo no meu sistema eu tenho o nome e a extensao do arquivo… o codigo acima quando eu executo ele faz o download pra mim mas na verdade a minha intensao era uma forma de pegar esse response e enviar para um <h:graphicImage no caso quando a extensao do meu arquivo for imagem e enviar para <h:outputLink quando for pdf

mauricioadl

nao compensa dar um forward no arquivo e deixar o navegador decidir se mostra ou disponibiliza para download???

E

eh assim essa parte eh um cadastro de noticia do site e dai a imagem teria que aparecer como fundo da noticia e o pdf caso o usuario queira fazer download da noticia completa

mauricioadl

nao sei se da certo, mas tenta ae e me fala.

aponta o parametro url para um metodo no seu managedBean, esse metodo retorna o endereco da imagem. caso o arquivo nao seja imagem ele da um forward para o arquivo e retorna um url vazia.

[]'s

E

mas assim o meu arquivo esta em byte[] no banco de dados eu nao estou trazendo ele de uma pasta

mauricioadl

nunca usei graphicimage com array de byte, normalmente aponta ela para uma url. desculpe, mas agora vou ficar devendo!

E

mas assim o codigo abaixo faz o download da imagem

response.setContentType(mime);
            response.setHeader("Content-Disposition", "attachment;filename=" + nome);
            OutputStream outputStream = response.getOutputStream();
            outputStream.write(bytes);
            outputStream.flush();
            outputStream.close();

nao tem uma forma de pegar o OutputStream e jogar para o <h:grapicimage ?

Criado 28 de fevereiro de 2012
Ultima resposta 29 de fev. de 2012
Respostas 10
Participantes 3