Carregando imagem em disco na JSP

1 resposta
rick_gallagher

Olá turma GUJ, estou precisando de uma ajuda da comunidade!!!

Alguém tem algum exemplo de implementação de como carregar uma imagem que está em disco rígido por um método na action e carrega-la em uma JSP ? :?:

Estou utilizando: Struts 1.2

1 Resposta

wolmirGarbin

Opa tudo certo!
Bom não é tão complicado mas assim vc primeiro vai precisar criar um array de bytes dessa imagem na aplicação:

/**
	 * Imagem para bytes passando o caminho da imagem
	 * 
	 * @param inFile
	 * @return
	 * @throws IOException
	 */
	public static byte[] imageToBytes(String inFile) throws IOException{   
		if(new File(inFile).exists()){
			InputStream is = new FileInputStream(inFile); 
			byte[] buffer = new byte[is.available()];   
			is.read(buffer);   
			is.close();   
			return buffer;  
		}else
			return null;
	}

Tendo o array pode utilizar este metodo abaixo que vai funcionar de boa…

public static void bytesFromFile(String nome, byte[] bytes, FacesContext fc) throws IOException {
		HttpServletResponse response = (HttpServletResponse) fc
			.getExternalContext().getResponse();
		
		ByteArrayOutputStream baos = new ByteArrayOutputStream();

		for (int byteLido = 0; (byteLido < bytes.length); byteLido++) {
			baos.write(bytes[byteLido]);
		}

		response.setContentLength(baos.size());
		response.setHeader("Pragma", "No-cache");
		response.setDateHeader("Expires", 0);
		response.setHeader("Cache-Control", "no-cache");
		response.setContentType("text/inline");
		
		response.setHeader("Content-Disposition", "attachment;filename="+ nome + " ");

		ServletOutputStream w = response.getOutputStream();
		w.write(baos.toByteArray());
		w.flush();			
		fc.responseComplete();
	}

Espero que ajude valeu!

Criado 5 de abril de 2011
Ultima resposta 7 de abr. de 2011
Respostas 1
Participantes 2