【问题标题】:FTP file upload failure JavaFTP文件上传失败Java
【发布时间】:2011-08-28 20:18:12
【问题描述】:

我在我的 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 库授予用户写入权限?

【问题讨论】:

  • 为什么不能?例外,什么都没有发生?你的代码是什么?
  • 可能只是你没有权限。告诉我们更多,我们很好奇:)
  • 如果您没有从客户端代码中得到任何反馈,为什么不登录服务器并查看记录了什么?

标签: java upload ftp-client


【解决方案1】:

已解决的问题: 这是授予用户写入权限的方法。我将此 sn-p 添加到服务器端并且它工作。

List<Authority> auths = new ArrayList<Authority>();

Authority auth = new WritePermission();

auths.add(auth);

user.setAuthorities(auths);

在此符号中写有术语Authority -> 在第一行的ListArrayList 之后是&lt; &gt;。网站看不到 &lt;&gt; 符号中的文字。

【讨论】: