Problema com Path de destino (gravando imagem)

2 respostas
srolbh

Ola pessoal,

no form do meu site eu tenho um campo onde eu pego um arquivo qualquer no disco e gravo em um destino especifico. O problema é que nao estou conseguindo gravar no destino correto.

A aplicacao web precisa ter este arquivo gravado em web/imgs/enviadas/,
porem ele grava o arquivo na raiz do eclipse:

public String gravaFoto(File origem, String serie) throws IOException {		
		
		
		File caminhoDestino = new File("web//imgs//enviadas");			
		
		if (!caminhoDestino.exists()){
			System.out.println("Caminho nao existe, criando...");
			caminhoDestino.mkdirs();
		}else {
			System.out.println("caminho ja existee...");
		}
		
		File destino = new File(caminhoDestino +"//"+ serie + ".jpg");
		
		
		
		FileInputStream fis = new FileInputStream(origem);
		
		OutputStream os = new FileOutputStream(destino);
		Integer valor = 0;
		byte[] bytes = new byte[1024];
		
		while ((valor = fis.read(bytes)) != -1){
			
			os.write(bytes, 0, valor);
			System.out.println("Gravando " + bytes);
		}
		
		os.flush();
		os.close();
		
		System.out.println("absoluto: " + destino.getAbsolutePath());
		return destino.toString();
	}

Olhem aonde ele esta gravando:

Caminho da foto:

C:\EclipseUML_E320_Free_Edition_2.1.0.20061006_including_Eclipse3.2\testeee.jpg

Se eu colocar uma / no caminhoDestino indicando a raiz, ele grava a partir da raiz do C:

Mas eu preciso gravar no caminho a partir do meu diretorio web. Se alguem puder ajudar eu ficarei muito agradecido, ja que estou agarrado nesse problema ha 2 horas…

Obrigado!

2 Respostas

Y

Você está concatenando um objeto File numa String, não sei se isso é permitido.

Tenta alterar a seguinte linha:

File destino = new File(caminhoDestino +"//"+ serie + ".jpg");

Por esta:

File destino = new File(caminhoDestino, serie + ".jpg");
srolbh

Yky Mattshawn:
Você está concatenando um objeto File numa String, não sei se isso é permitido.

Tenta alterar a seguinte linha:

File destino = new File(caminhoDestino +"//"+ serie + ".jpg");

Por esta:

File destino = new File(caminhoDestino, serie + ".jpg");

Obrigado, mas não é este o problema. A concatenação funciona perfeitamente. A questao é que ele esta gravando as imagens em um diretorio fora da minha aplicacao.

O interessante e que se eu rodar essa classe diretamente do eclipse, ela grava no caminho correto.

Criado 25 de março de 2007
Ultima resposta 25 de mar. de 2007
Respostas 2
Participantes 2