【发布时间】:2018-03-15 10:20:48
【问题描述】:
我遇到了一个小问题,慢慢地让我感到沮丧。我需要通过 TLS 将文件发送到 FTP 服务器,使用 org.apache.commons.net.ftp.FTPSClient 并在调用 storeFile() 方法后得到 200 个回复代码,但是我在服务器上看不到任何结果。
FTP 服务器没有在我的本地主机上运行。当我做同样的事情但使用 Filezilla 客户端时,它在被动和主动模式下都没有任何问题。
FTPSClient ftpsClient = new FTPSClient("TLS", false);
ftpsClient.connect(server, port);
boolean logged = ftpsClient.login(user, pass);
ftpsClient.enterRemotePassiveMode();
System.out.println(ftpsClient.getReplyCode());
ftpsClient.execPBSZ(0);
ftpsClient.execPROT("P");
ftpsClient.sendCommand("TYPE", "A");
System.out.println(ftpsClient.getReplyCode());
File file = new File("config.xml");
InputStream inputStream = new FileInputStream(file);
boolean done = ftpsClient.storeFile("config.xml", inputStream);
System.out.println(ftpsClient.getReplyCode());
inputStream.close();
这段代码执行的结果是:
227
200
200
但也许这个 STOR 命令实际上并没有过度,这 200 代码与之前的命令有关?
【问题讨论】: