Tentando escrever arquivo existente de em uma variável no disco

5 respostas
anderson.bonavides

Pessoal estou tentando escrever um arquivo que já está em uma variável no meu disco. Segue o meu código para vocês me ajudarem.

Grato!

ArrayList<Anexo> anexoGuia = new ArrayList<Anexo>(); anexoGuia = (ArrayList<Anexo>) request.getSession().getAttribute("colecaoAnexo"); objetoGuia.setAnexos(anexoGuia); request.getSession().setAttribute("colecaoAnexo", null);

public Boolean insereImagemNoBanco(ArrayList<Anexo> anexoGuia,
			HttpServletRequest request, HttpServletResponse response) {

		HttpSession sessao = request.getSession();
		String fileSeparator = System.getProperty("file.separator");
		String saidaTemp = "C:/eclipse/workspace/VEPCNJ/public_html/documento/autos/temp";
		ArrayList<MeuBlob> listaBlob = new ArrayList<MeuBlob>();
		String mimeType = null;
		String fileName = "";
		BLOB blob = null;
		File diretorio = new File(saidaTemp);

		for (Iterator iterator = anexoGuia.iterator(); iterator.hasNext();) {
			Anexo anexo = (Anexo) iterator.next();
			if (!diretorio.exists()) {
				diretorio.mkdir();
			}
			File f = new File(saidaTemp + "/" + anexo.getNomeArquivo());
			try {
				FileOutputStream fileOutputStream = new FileOutputStream(f,	true);
				
			} catch (IOException e) {
				e.printStackTrace();
			}

		}

5 Respostas

IAX

Olá…

Está ocorrendo algum erro, o arquivo está sendo salvo em algum servidor e não na sua máquina. Qual o problema na verdade?

Att,
IAX

anderson.bonavides

Ele esta sendo salvo, só q está vazio.

IAX

Bonavides

Você está abrindo o arquivo para gravação mas não está escrevendo nada nele, por isso fica vazio, você tem que escrever os bytes do conteúdo do seu anexo no OuputStream. Não tem nenhuma linha linha com o comando fileOutputStream.write(bytes); onde bytes são os bytes do seu arquivo a ser gravado.

Espero ter ajudado.

Att,
IAX

IAX

Outra coisa que me esqueci de mencionar, você também não está fechando o arquivo ao terminar de manipulá-lo, o certo seria como abaixo.

fileOutputStream.write(bytes); //escreve os bytes do seu anexo, ou seja seu aquivo
fileOutputStream.flush(); //Libera o que foi escrito no buffer
fileOutputStream.close(); //fecha o arquivo

Att,
IAX

anderson.bonavides

Olá IAX conseguir resolver.

Agradeço pela força.

=]

Criado 9 de junho de 2009
Ultima resposta 9 de jun. de 2009
Respostas 5
Participantes 2