Img de 26.000 X 6.000 -- Problemas ao exibir

5 respostas
Fernando_H_Gomes

Ola galera, tenho esta pequeninha imagem e tenho que exibir ela na minha pagina..

<h:graphicImage id="imagemVisualizador"
				styleClass="imagemVisualizador" 
				value="#{visualizador.visualizador.arquivoVisualizacao}" 
				/>
seto pro graphicImage uma url que vai chegar no meu servlet.. e vai chamar..
FileInputStream in = new FileInputStream(arquivo);
ServletOutputStream sos = response.getOutputStream();
byte[] buf = new byte[10240];
			int cont = 0;
			while ((cont = in.read(buf)) >= 0)
			{
				sos.write(buf, 0, cont);
			}

			in.close();
			sos.close();
mas nao sei porque raios.. depende do navegador/maquina a imagem n abre.. da uma exception de IO no servidor.. ClientAbortException
SEVERE: Erro de I/O
ClientAbortException:  java.net.SocketException: Connection reset by peer: socket write error
... alguem me ajuda tem um tamanho de buffer que seja mais padrao ? ja tentei diminuir.. ja tentei aumentar.. sei la.. ja tentei
IOUtils.copyLarge(fis,fos);
tbm ..
//		ServletOutputStream sos = response.getOutputStream();
//		RenderedOp src = JAI.create("fileload", arquivo);  
//		String extensao = Arquivo.getExtensao(arquivo);
//		ImageEncoder encoder = ImageCodec.createImageEncoder(extensao,sos, null);   
//	    encoder.encode(src);

PS:MIME TYPE

ServletContext sc = getServletContext();
        String mimeType = sc.getMimeType(caminhoFisicoDaImagem);
        response.setContentType(mimeType);

5 Respostas

G

Bom … isso deve ocorrer pq vc esta tentando enviar um arquivo muito grande. No seu web.xml existe uma propriedade chamada MaxRequestSize(ler as primeiras linhas) dentro do RichFacesFilter. Mude o valor para um tamanho maior, sempre em bytes.

Fernando_H_Gomes

cara essa propriedade ta em 200.000.000
ta foda ^^

Leozin

Esse buffer tá muito grande, não tá?

ao invéz de 10240, coloque 1024 :stuck_out_tongue:

e não esqueça do flush()

Fernando_H_Gomes

como ja disse em cima…
ja foi tentado diminuir o buffer …exatamente para 1024 …
e aumentar … ja foi testado com 8k e poko… com 10k… 20k
ja tentei carregar o bytearray todo e escrever de uma vez …

Fernando_H_Gomes

Alguma sugestao?
Tentei mudar o caminho da imagem, desviando do servlet…
pegando direto a url do arquivo…
e em alguns browser/maquina … ainda ta dando o erro.
o browser cancela a requisição …
n sei porque raios.

ta acontecendo muito no ie …
help ae

Criado 30 de março de 2010
Ultima resposta 1 de abr. de 2010
Respostas 5
Participantes 3