Pessoal, teho que enviar um arquivo TXT para um determinado endereço via FTP em uma determinada porta. Talvez alguém saiba do que se trata, é parte de um sistema da Bosch onde as autorizadas devem enviar dados dos atendimentos.
O tópico já é antigo (eu achei pesquisando na internet), mas dá pra aproveitá-lo com minha dúvida.
Estou enviando arquivos via FTP com o FTPClient do jakarta.
No momento de enviar o InputStream, ele consegue fazer o store na pasta do servidor FTP normalmente.
Quando vou abrir o novo arquivo na pasta do servidor (no meu exemplo é um pdf), o Adobe Reader informa que há um erro de leitura no arquivo. Se eu abro o arquivo em modo texto (bloco de notas), o conteúdo é o mesmo do original.
Vou postar meu código:
publicclassTesteFTP{privateFTPClientftpClient=newFTPClient();privatePropertiesprop=newProperties();publicbooleanenviarArquivoViaFTP(Arquivoarquivo)throwsIOException{Filef=// pega o File do meu diretorio original a partir do objeto passado como parametrobooleanadicionou=false;prop.load(TesteFTP.class.getResourceAsStream("/ftp.properties"));try{ftpClient.connect(prop.getProperty("enderecoServidor"));if(FTPReply.isPositiveCompletion(ftpClient.getReplyCode())){ftpClient.login(prop.getProperty("usuario"),prop.getProperty("senha"));FileInputStreamfis=newFileInputStream(f);BufferedInputStreambis=newBufferedInputStream(fis);// faz o store no servidor FTPadicionou=ftpClient.storeFile(f.getName(),bis);bis.close();fis.close();if(adicionou)System.out.println("Arquivo adicionado com sucesso!");}else{ftpClient.disconnect();System.out.println("Conexao recusada");System.exit(1);}}catch(Exceptione){System.out.println("Ocorreu um erro: "+e);}returnadicionou;}publicstaticvoidmain(String[]args)throwsIOException{Arquivoa=// traz o objeto arquivoSystem.out.println(a.getServidor());if(a.getServidor()!=Arquivo.Servidor.X){if(newTesteFTP().enviarArquivoViaFTP(a)){a.setServidor(Arquivo.Servidor.X);}else{System.out.println("Nao foi possivel enviar o arquivo");}}}}
Grato pela atenção.
F
f-schmitt1 like
Não sei ao certo como cheguei aqui, mas o seu problema provavelmente se resolve usando isso, antes de enviar o arquivo: