FTP Enviar arquivo

1 resposta
T

Bom eu estou usando a api do apache commons-net1.4.0 para fazer o FTP, e ocorre o seguinte problema:

org.apache.commons.net.MalformedServerReplyException: Could not parse response code. Server Reply: Ftp image done; PLEASE TYPE bye or quit NOW to quit ftp and the Router wil start writing the image to flash.

at org.apache.commons.net.ftp.FTP._getReply(FTP.java:284)

at org.apache.commons.net.ftp.FTP._getReply(FTP.java:605)

at org.apache.commons.net.ftp.FTPCliente.completePendingCommand(FTPCliente.java:1253)

at org.apache.commons.net.ftp.FTPCliente._storeFile(FTPCliente.java:415)

at org.apache.commons.net.ftp.FTP.storeFile(FTPCliente.java:1388 )

at ftp.Ftp.main(Ftp.java:27)

o codigo onde eu estou enviando o arquivo é o seguinte:

InputStream is = new FileInputStream("/root/configuracao/configuracaoADSLRouter.conf");

ftp.type(2);

System.out.println(ftp.getReplyString);

ftp.storeFile(nomeArquivo, is);

System.out.println(ftp.getReplyString);

ftp.quit();

System.out.println(ftp.getReplyString);

Gostaria de saber o por que esta acontecendo isso.

Thx

1 Resposta

T

Acreduti que o seu roteador não implemente corretamente o protocolo FTP.
É que para cada resposta, ele teria de antecedê-la por um código (como 500 ‘command not understood’, ou 230 ‘anonymous user logged in’. )

Como ele deve ter mandado essa string ("Ftp image done; PLEASE TYPE ‘bye’ or ‘quit’ NOW to quit ftp and the Router wil start writing the image to flash. ", sem um código numérico de 3 dígitos antes, para o commons-net, então o seu programa pegou uma exceção.

No seu caso, você poderia “mexer” nessa biblioteca para que ela aceitasse essas respostas errôneas, que não começam por 3 dígitos e um espaço.

Criado 23 de junho de 2006
Ultima resposta 23 de jun. de 2006
Respostas 1
Participantes 2