[RESOLVIDO][AJUDA] Problema ao enviar arquivo para o usuário

3 respostas
brunocl14

Já estou há quase dois dias tentando resolver este problema e não consigo.

Tenho uma determinada pasta no servidor(fora das dependencias do projeto) só com imagens e preciso enviá-las ao cliente como um simples download.

O problema é que os arquivos a.pdf e .jpg abrem direto na tela exibindo apenas um código estranho q sinceramente não sei o q é.
%PDF-1.4
%����
1 0 obj <</Type/XObject/ColorSpace/DeviceRGB/Subtype/Image/BitsPerComponent 8/Width 793/Length 1141785/Height 1112/Filter/DCTDecode>>stream
�����JFIF��d�d�����RExif��II*�����i�������������������,�������LEAD Technologies Inc. V1.01�����C����C���X"��������������	
�������}�!1AQa"q2���#B��R��$3br�	
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz�����������������������������������������������������������������������������������	
������w�!1AQaq"2�B����	#3R�br�
Já rodei a internet toda, ou quase toda, testei todo tipo de código para envio do orquivo, transformação do arquivo físico em bytes[] mas nada funciona. DETALHE: a rotina que uso para passar o arquivo ara o cliente é a mesma usada para passar um relatório em outra tela e funciona. talvezpossa ser algum erro na página, alguma coifiguração ninja misteriosa em algum canto perdido. quem puder ajuda ae plz.

abraço.

seguem os códigos:
File f = new File(this.dirCertificados + fileName + ".jpg");
				if (f.exists()) {
					downloadImageFromFile(f);
public void downloadImageFromFile(File file) throws Exception {
		System.out.println("downloading...");
		System.out.println(file.getName());
		System.out.println(file.getPath());

		if (!file.exists())
			throw new FileNotFoundException("Arquivo não encontrado!");

		this.download(this.fileToByte(file), file.getName());
}
public void download(byte[] arquivo, String fileName) throws IOException {

		FacesContext facesContext = FacesContext.getCurrentInstance();
		HttpServletResponse response = (HttpServletResponse) facesContext
				.getExternalContext().getResponse();

		response.setContentType("application/octet-stream");

		response.setContentLength(arquivo.length);

		response.addHeader("Content-Disposition", "attachment; filename="
				+ "\"" + fileName + "\"");

		response.getOutputStream().write(arquivo);
		response.getOutputStream().flush();
		response.getOutputStream().close();
		facesContext.responseComplete();

	}

3 Respostas

B

Tente mudar response.setContentType("application/octet-stream"); para response.setContentType("image/jpeg");

brunocl14

[RESOLVIDO]

¬¬

foi mal ae galera… a parada não funciona legal com a4j:commandButton… se alguem souber o pq posta ae plz.!

Abraço;

brunocl14

já havia tentado isso. o problema foi no botão msm.

Criado 6 de agosto de 2009
Ultima resposta 6 de ago. de 2009
Respostas 3
Participantes 2