[RESOLVIDO]Disponibilizar arquivo para download - WebServices

1 resposta
A

Fala galera! blz? hehe
Primeiramente queria agradecer aos membros do forum que sempre ajudam aí, pois jah tirei muitas duvidas e achei muitas soluções aqui no forum somente buscando… hehe
mas vamos a minha primeira duvida postada… :lol:
Eu tenho um webservice criado… e estou utilizando ele para mandar e receber uma string no formato base64 do conteudo de um arquivo… até aí tudo perfeito…
agora o que eu estou precisando fazer é:

Retornar essa “string”(base64) e depois trasformá-la de novo no arquivo que era antes…

o que eu não sei fazer é, como devo proceder para disponibilizar esse arquivo para download?
preciso fazer um outputstream e “recriar” esse arquivo no servidor web em uma pasta temporária (talvez?) antes de disponibilizar para download?
posso fazer um “stream direto” da converção dessa estring q eu re-enviei pelo webservice?
devo criar um outputlink? como proceder?
enfim, como faço para pegar a strng/arquivo q eu trouxe do banco através do meu WebService e disponibilizar para download?

Obs.:
1-estou utilisando Visual JSF…
2-estou utilizando essa classe de base64
com.sun.xml.wss.impl.misc.Base64
3- utiliso outro médodo do webservice para trazer todas as informações do arquivo, como por ex nome(oq traz o formato tb)…

desde já agradeço… ah! e eh de [color=red]EXTREMA URGENCIA ISSO[/color]! =/
*Como sempre! hehe
Obrigado de novo! =)

1 Resposta

A

já resolvido! :lol:

try { // Call Web Service Operation
            filews.FileWS port = service.getFileWSPort();
            // TODO initialize WS operation arguments here
            int arqCodigo = 1;
            int usuCodigo = 1;
            // TODO process result here
            java.lang.String result = port.arqBaixar(arqCodigo, usuCodigo);
            
            FacesContext faces = FacesContext.getCurrentInstance();
            HttpServletResponse response = (HttpServletResponse) faces.getExternalContext().getResponse();
            byte[] modelo = Base64.decode(result);
            response.addHeader("Content-Disposition:", "attachment; filename=TELEFONE.png");
            response.setContentType("application/cbl");
            response.setContentLength(modelo.length);
            OutputStream out = response.getOutputStream();
            out.write(modelo);
            faces.responseComplete();

            System.out.println("Result = " + result);
        } catch (Exception ex) {
            // TODO handle custom exceptions here
        }
Criado 14 de dezembro de 2009
Ultima resposta 14 de dez. de 2009
Respostas 1
Participantes 1