我在Java项目中使用Apache的FTPClient和FTPServer库。服务器和客户端在同一台机器上。
我的FTPServer应该是本地服务器,与Internet无关。我可以从客户端连接到FTPServer(我得到230作为回复代码),但我似乎无能为力。我无法存储或检索任何文件。
我几乎阅读了与此事有关的所有问题,但是那些提出其他问题的人能够发送简单的文件,并且无法发送像pdf等文件。我只需要发送或检索文本文件。
有什么建议吗?
FTPClient client = new FTPClient();
String host = "mypc";
String Name = "user";
String Pass = "12345";
client.connect(host);
client.login(Name,Pass);
System.out.println("Reply Code: " +client.getReplyCode());
File file = new File("C:\\.....myfile..txt");
FileInputStream in = new FileInputStream("C:\\.....myfile..txt");
boolean isStored = client.storeFile("uploadedfile.txt", in);
in.close();
client.logout();
System.out.println("isStored: " +isStored);
我没有把真实的路径名称。它返回false,没有异常等。这可能是因为它们在同一台机器上?
编辑:原来我需要写权限才能将文件发送到ftpserver。默认情况下,它不会授予用户写入权限。如何使用Apache的ftpserver库为用户提供写入权限?
答案 0 :(得分:5)
解决问题: 这是如何授予用户写入权限。我将这个片段添加到服务器端并且它可以工作。
List<Authority> auths = new ArrayList<Authority>();
Authority auth = new WritePermission();
auths.add(auth);
user.setAuthorities(auths);
这个符号中写有Authority
一词 - &gt; < >
之后的List
和第一行中的ArrayList
。网站未在<>
符号中看到字词。