Глядя в свой код, я думаю, что вы используете сеть Джакарты.Если это правда, попробуйте это:
ftp.connect(address, port);
boolean ft = ftp.setFileType(FTPClient.BINARY_FILE_TYPE);
if(!ft)
throw new Exception("Error");
ftp.enterLocalPassiveMode(); or ftp.enterLocalActiveMode();
boolean log = ftp.login(user, password);
//if log == true, then u are logged in
ftp.storeFile(remote, local);
Кроме того, если вы хотите использовать индикатор выполнения для получения прогресса передачи, вы можете попробовать этот метод вместо ftp.storeFile
InputStream stO = new BufferedInputStream(new FileInputStream(file), ftp.getBufferSize());
OutputStream stD = ftp.storeFileStream(file.getName());
org.apache.commons.net.io.Util.copyStream(
stO,
stD,
ftp.getBufferSize(),
file.length(),
new org.apache.commons.net.io.CopyStreamAdapter()
{
@Override
public void bytesTransferred(long totalBytesTransferred, int bytesTransferred,
long streamSize)
{
try
{
pb.setMaximum((int)streamSize);
pb.setValue((int)totalBytesTransferred);
}
catch(Exception ex)
{
pb.setMaximum(-1);
}
}
});
stO.close();
stD.close();
boolean ok = ftp.completePendingCommand();
if(!ok)
throw new Exception("ERROR while sending the file");
PS: pb - это JProgressBar