我遇到了一个小问题,慢慢让我感到沮丧。我需要使用 org.apache.commons.net.ftp.FTPSClient 通过TLS将文件发送到FTP服务器,并在调用 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个代码之前与命令有关?
答案 0 :(得分:0)
如果有人对此问题的解决方案感兴趣,那就是恢复服务器所需的ssl会话而不是客户端处理。在filezilla服务器上取消选择此选项后,它已开始正常工作。