Quiero implementar un cliente FTP con Apache Commons Net solo para cargar datos. La conexión y el inicio de sesión en el servidor FTP funciona bien. Pero la carga no funciona bien. Los archivos son un poco más grandes que los originales. Y los archivos están dañados. Probé una imagen, un video y un archivo de texto. Solo el archivo de texto está bien.Apache Commons FTP problems
Ahora veo durante la depuración
boolean tmp=client.setFileTransferMode(FTPClient.BINARY_FILE_TYPE);
me da false
. Entonces no se puede configurar. ¿Por qué? (Tal vez este no es el problema?)
Aquí una el resto de mi código
client=new FTPClient();
try {
int reply;
client.connect(url, port);
reply = client.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply))
{
client.disconnect();
System.err.println("FTP server refused connection.");
System.exit(1);
}
client.login(user, pw);
boolean xxx=client.setFileTransferMode(FTPClient.BINARY_FILE_TYPE);
client.setControlKeepAliveTimeout(300);
client.enterLocalPassiveMode();
if (client.isConnected())
{
try {
File file=new File(<FILE>);
FileInputStream inputStream = new FileInputStream(file);
OutputStream outputStream = client.storeFileStream(file.getName());
byte[] buffer = new byte[4096];
int l;
while((l = inputStream.read(buffer))!=-1)
{
outputStream.write(buffer, 0, l);
}
inputStream.close();
outputStream.flush();
outputStream.close();}
Hola, lo probé, pero el método me da falso, por lo que no se puede establecer el modo. – Igor
¿Has probado esto en alguna parte después de llamar al método connect? –
Y también después del método de inicio de sesión. –