Upload

3 respostas
M

Pessoal, por motivo desconhecido o meu método de Upload, após a atualização do Eclipse, parou de funcionar, na hora de gravar ele grava o nome no arquivo.extensão mas sem conteúdo algum.

Usando o System.out.println(), achei o ponto onde dá o erro:

Antes do ponto

public String getIncluir() throws SQLException, IOException{		
		try {
		  BLOB blob = null;
		  OutputStream outstream = null;
		  PreparedStatement sql = null;
		  ResultSet resSet = null;
		  conecta();
         //get new id
		  sql = conn.prepareStatement(" SELECT sigma_proj.sq_anexo_forum.nextval"
		               + " FROM   dual");
		  resSet = sql.executeQuery();
		  if (resSet.next()) {
			  id = new Integer( (int)resSet.getInt(1));
		  }
		  // insert new row
		  // The LOB column value is initialized to empty in this step,
		  // and will be loaded in the steps below.
		  sql = conn.prepareStatement(" INSERT INTO sigma_proj.anexo_forum VALUES "
		             + " (" + id + ",?,?,?, empty_blob())");
		  sql.setInt(1,id_perguntas);
		  sql.setString(2, nome_arquivo);
		  sql.setString(3, descricao);
		  sql.executeUpdate();
		  mensagem = "Incluido";
		  
		  conn.setAutoCommit(false);
		   //Execute the query and lock the BLOB row.
	      sql = conn.prepareStatement("SELECT arquivo FROM sigma_proj.anexo_forum WHERE id_anexo_forum = " + id + " For Update");
		  ResultSet rs = sql.executeQuery ();
	      rs.next();
	      //Get the BLOB locator.
	      blob = ((OracleResultSet)rs).getBLOB(1);
	      
	      System.out.println("Pegando arquivo no diretório temporário");

Onde gera exceção

File binFile = new File(PropertiesLoaderImpl.getValor("dir_temp")+nome_arquivo);
	      FileInputStream instream = new FileInputStream(binFile);
	      //Insert to the BLOB from an output stream.
	      outstream = blob.getBinaryOutputStream();
	      //Read the input stream and write the output stream by chunks.
	      byte[] chunk = new byte[blob.getChunkSize()];
	      int i=-1;
	      while((i = instream.read(chunk))!=-1){
	        outstream.write(chunk,0,i);
	      }
	      //Close the input and output stream.
	      instream.close();
	      outstream.close();
	      //Close the statement.
	      sql.close();
	      System.out.println(binFile);
	      
	      File file = new File(PropertiesLoaderImpl.getValor("dir_temp")+nome_arquivo);
	      System.out.println(file);
	      file.delete();
		}finally {		        
		     try{conn.close();System.out.println("Após desconectar");}
		     catch(Exception e){e.printStackTrace();}
	      }
		return mensagem;	
	}

Exceção gerada:

java.io.FileNotFoundException: C:\Tomcat\webapps\metasuporte\WebContent\anexos\tigre.jpeg (O sistema não pode encontrar o arquivo especificado)

O caminho é especificado num arquivo .properties :dir_temp=C:/Tomcat/webapps/metasuporte/WebContent/anexos/ e está correto, já até tentei colocando C:/temp mesmo assim dá o erro.

Alguém saberia me dizer o que seria ??? pois estava funcionando normalmente, e do nada parou !!!

Obrigado galera.

3 Respostas

Rafael_Steil

Em qual linha do seu codigo a exception ocorre, precisamente?

O valor de PropertiesLoaderImpl.getValor(“dir_temp”) é o mesmo que esta no arquivo de configuracao? voce certificou-se disso com absoluta certeza (aka, colocando um breakpoint / escrevendo o valor em algum log)?

Rafael

M

Rafael as configurações estão corretas, o upload estava funcionando normalmente até que peguei uma nova versão do Eclipse e nesta não cria mais o diretório .deployables onde o caminho que funcionava apontava, como não tem mais tive que modificar o caminho, q está correto tb, porém não funciona mais o upload.

caso não entenda minha colocação pode perguntar.

Obrigadão cara!!

J

Aff, viajei no último post…

Reescrevendo então…

Tenta colocar duas barras ao invés de uma lá no arquivo de propriedades.

Criado 31 de março de 2006
Ultima resposta 18 de abr. de 2006
Respostas 3
Participantes 3