Como Gravar Imagem Criada no Servlet

10 respostas
marciocamurati

Olá a todos !

Seguinte estou gerando uma imagem em um Servlet e gostaria de saber como eu posso fazer para gravar esssa imagem na máquina do cliente, meu programa é assim, o cliente tem uma interface gráfica que está em sua máquina rodando é feita uma requisição para um servlet que cria uma imagem, e aqui vem o problema não sei como fazer pra gravar esse “retorno” que o servlet me dá !

Alguém sabe ?

[]s

10 Respostas

_fs

Antes de mais nada, tenha certeza que você tem os direitos necessários para gravação na máquina cliente.

Qual tipo de retorno que o servlet fornece?

De qualquer maneira, de uma olhada na classe File.

T

Você precisa setar o content-type para image/jpeg ou image/png ou image/gif, e setar mais alguma coisa (content-disposition se não me engano, mas isso você pode procurar por aí) para mudar o nome do arquivo .
Agora, para gravar no lugar certinho (por exemplo, em C: emp) em vez de simplesmente mostrar no browser, você precisaria de um applet ou ActiveX assinado que permitisse gravar no lugar certo. (Ora, se você estiver chamando o servlet via aplicação em vez de ser pelo browser, isso não é problema para você.).

marciocamurati

Então eu estou em um sistema instalado no cliente e não no browser então eu tenho permissão para gravar só não sei como fazer, no ServLet é criada a imagem é desenhada e retornada para exibir no browser mas em vez de exibir queria salva-lá em minha máquina, é tipo aquelas imagens de segurança de formulário tipo a q a TIM tem,

http://servicos.timbrasil.com.br/weblogic/torpedoWeb/smsmt.jsp

.

Valeu !

_fs

Ok, mas que tipo de retorno o servlet fornece? Bytes? Outro objeto? Manda um mensageiro imprimir, correr até a casa do usuário e colar no monitor dele?

marciocamurati

Lipe o Servlet retorna bytes.

louds

Já tentou chuchar esses bytes em um arquivo e ver o resultado?
Se não souber como olhe a documentação de java.io.FileOutputStream.

marciocamurati

Valeu pelas ajuda consegui fazer oq eu queria !

[]s

_fs

nananinanão, sem essa de “obrigado, até mais” :mrgreen: pode ir postando como que conseguiu fazer, assim quem tiver a mesma dúvida, já tem reposta :smiley:

marciocamurati

Quando chegar em casa a noite colo aqui o código que usei.

[]s

marciocamurati

Segue o código q fiz para fazer oq eu precisava:

URL url = new URL(“http://www.host.com.br/weblogic/services/servlet/”);
URLConnection conn = url.openConnection();

InputStream x = conn.getInputStream();
Image image = null;

try{		

BufferedImage z = ImageIO.read(x);

image = ImageIO.read(x);

File file = new File(texte.png);

javax.imageio.ImageIO.write(z, PNG, file);

} catch(Exception e) {

System.out.println(e.getMessage());

}

[]s

Criado 20 de setembro de 2004
Ultima resposta 22 de set. de 2004
Respostas 10
Participantes 4