Please figure this out. The code runs properly without any exception.
FTPClient ftp = new FTPClient();
ftp.connect(server);
if(!ftp.login(username, password))
{
ftp.logout();
return false;
}
int reply = ftp.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply))
{
ftp.disconnect();
return false;
}
InputStream in = new FileInputStream(localfile);
ftp.setFileType(ftp.BINARY_FILE_TYPE, ftp.BINARY_FILE_TYPE);
ftp.setFileTransferMode(ftp.BINARY_FILE_TYPE);
Store = ftp.storeFile(destinationfile, in);
in.close();
ftp.logout();
ftp.disconnect();
}
catch (Exception ex)
{
ex.printStackTrace();
return false;
}
return Store;
Buttttttttt
return statement always return false and the file is not uploaded on the server. Some one please help on this.
For your information,
1) i am in an office network. ---> do we need to add any proxies?
File file = new File("C:\\Users\\sg0214273\\Desktop\\seagate\\seagate.txt");
FileInputStream input = new FileInputStream(file);
client.setFileType(FTP.BINARY_FILE_TYPE);
if (!client.storeFile(file.getName(), input)) {
System.out.println("upload failed!");
}
reply = client.getReplyCode();
if(!FTPReply.isPositiveCompletion(reply)) {
System.out.println("upload failed!");
}
Login success...
230 User ******** logged in.
upload failed!-----> is form boolean return value of storefile
upload failed!---------> is from replycode...
Logout from FTP server...
Please help out
解决方案
The exact failure message can be found by calling FtpClient#getReplyCode(). From that page (my emphasis):
Immediately after connecting is the only real time you need to check
the reply code (because connect is of type void). The convention for
all the FTP command methods in FTPClient is such that they either
return a boolean value or some other value. The boolean methods return
true on a successful completion reply from the FTP server and false on
a reply resulting in an error condition or failure. The methods
returning a value other than boolean return a value containing the
higher level data produced by the FTP command, or null if a reply
resulted in an error condition or failure. If you want to access the
exact FTP reply code causing a success or failure, you must call
getReplyCode after a success or failure.
To see what a return code means, you can see Wikipedia: List of FTP server return codes.