Estou com um problemas ao enviar e recuperar um arquivo via ftp.
Não aparece nenhuma exception, porén meu arquivo não aparece no servidor e ao tentar pegar algum arquivo ele vem sem conteúdo.
Esse é o código q estou utilizando.
//faz o envio do arquivoftp.storeFile(nomeArquivo,is);booleanftpq=ftp.storeFile(nomeArquivo,is);
//Porém vem falso minha flag…isso que não entendi o porque.
E quando vou recuperar o arquivo vem vazio.
//recuperando os arquivos ftpftp.setFileType(FTPClient.BINARY_FILE_TYPE);OutputStreamos=newFileOutputStream("onconfig.cbsp999");ftp.retrieveFile("onconfig.cbsp999",os);
Eu escrevi um artigo bem simples, explicando o envio e o recebimento de arquivos via FTP. Dá um olhada:
Um abraço!
Glaucio Guerra
J
JAVA_DIGAO
publicstaticvoidmain(String[]args){StringnomeArquivo=null;FTPClientftp=newFTPClient();FTPftpMedial=newFTP();try{ftp.connect("999.99.9.999");//verifica se conectou com sucesso!if(FTPReply.isPositiveCompletion(ftp.getReplyCode())){ftp.login("USUARIO","SENHA");}else{//erro ao se conectarftp.disconnect();System.out.println("Conexão recusada");System.exit(1);}//para cada arquivo informado...for(inti=0;i<args.length;i++){//abre um stream com o arquivo a ser enviadoInputStreamis=newFileInputStream("C:/arquivo/arq_env.txt");//pega apenas o nome do arquivointidx=args[i].lastIndexOf(File.separator);if(idx<0)idx=0;elseidx++;nomeArquivo=args[i].substring(idx,args[i].length());//ajusta o tipo do arquivo a ser enviadoif(args[i].endsWith(".txt")){ftp.setFileType(FTPClient.ASCII_FILE_TYPE);}elseif(args[i].endsWith(".jpg")){ftp.setFileType(FTPClient.BINARY_FILE_TYPE);}else{ftp.setFileType(FTPClient.ASCII_FILE_TYPE);}//recuperando os arquivos ftpftp.setFileType(FTPClient.BINARY_FILE_TYPE);OutputStreamos=newFileOutputStream("onconfig.cbsp999");ftp.retrieveFile("onconfig.cbsp999",os);//faz o envio do arquivoftp.storeFile(nomeArquivo,is);booleanftpq=ftp.storeFile("arq_env.txt",is);System.out.println("Arquivo "+nomeArquivo+" enviado com sucesso!");}ftp.disconnect();System.out.println("Término do FTP");}catch(Exceptione){System.out.println("Ocorreu um erro: "+e);System.exit(1);}}
V
vfpribeiro
Olá Java Digao,
Obtiveste alguma resposta, ou conseguiste dar com o erro?
Obrigado
Olá pessoal, aproveitando este tópico sobre FTP, gostaria que alguém me aconselhasse em um problema que está ocorrendo aqui comigo.
Criei uma funcionalidade onde o cliente escolhe o arquivo em sua máquina e o salva em um servidor ftp que esta conectado, até ai tudo bem, consegui realizar a conexão com o ftp, encaminhar o arquivo, sem erros. Mas o problema é que tudo isso apenas dá certo no servidor aqui da empresa, quando atualizo o sistema no servidor do cliente nada acontece, clico no botão e é como se nada tivesse ocorrendo, nenhuma exception é gerada, NADA !
O que poderia estar acontecendo ? Creio que não deve ser erros no código pois em minha máquina e acesso remoto no servidor aqui da empresa roda normal, imagino que possa ser alguma permissão ou no servidor ou no serviço de ftp do cliente.
Obrigado pela atenção !
R
Rafael_Ferraro
Pessoal, realizando testes e fazendo verificações vi que o erro ocorre porque ele não chega a acessar a classe FTPClient, ou seja, fui colocando joptionpanes pela aplicação para ver onde ele para, e ao chegar na linha para criar uma instancia da classe FTPClient ele não faz nada. Será que é algum erro de permissão do FTP ? ou do servidor ?
Agradeço ajudas !