我已经编写了一个独立的程序来将文件上传到FTP服务器。代码运行正常,但我无法在FTP上找到该文件。这是代码
import java.io.FileInputStream;
import java.io.IOException;
import java.net.SocketException;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPReply;
public class FTPDemo {
public static void main(String[] args) {
FTPClient ftp = new FTPClient();
int reply;
try {
ftp.connect("ip address");
ftp.login("username","password");
reply = ftp.getReplyCode();
if(FTPReply.isPositiveCompletion(reply)){
System.out.println("Connected Success");
}else {
System.out.println("Connection Failed");
ftp.disconnect();
}
FileInputStream fis = null;
String filename = "demo.txt";
fis = new FileInputStream("C:\\demo.txt");
System.out.println("Is file stored: "+ftp.storeFile(filename,fis));
fis.close();
ftp.disconnect();
} catch (SocketException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
文件存储是否返回false。可能是什么问题?
答案 0 :(得分:2)
FTPClient中所有FTP命令方法的约定是它们返回布尔值或其他值。布尔方法在来自FTP服务器的成功完成答复时返回true,在答复时返回false,从而导致错误条件或失败。返回布尔值以外的值的方法返回包含FTP命令生成的更高级别数据的值,如果答复导致错误条件或失败,则返回null。如果要访问导致成功或失败的确切FTP回复代码,则必须在成功或失败后调用getReplyCode。
换句话说,要了解失败的实际原因,您需要致电ftp.getReplyCode()
并从那里开始工作。