无法使用FTPClient上传文件

时间:2013-04-15 06:48:56

标签: file-upload ftp ftp-client apache-commons-net

我必须使用FTP服务器上传和下载文件,但我遇到了问题。已经有很多解决方案,但似乎没有任何工作。

我使用secureftp-test.com作为测试FTP服务器。

下面是我在使用FTPClient storeFile方法上传的地方的代码,但它似乎无效。

public static void main(String[] args) {
    String server = "ftp.secureftp-test.com";
    int port = 21;
    String user = "test";
    String pass = "test";

    FTPClient ftpClient = new FTPClient();
    try {

        ftpClient.connect(server, port);
        boolean login = ftpClient.login(user, pass);
        System.out.println("login " + login);
        ftpClient.setFileTransferMode(FTP.BINARY_FILE_TYPE);
        ftpClient.setFileType(FTP.BINARY_FILE_TYPE);

        File firstLocalFile = new File("D:/jetty.pdf");

        String firstRemoteFile = "myfile.pdf";
        InputStream inputStream = new FileInputStream(firstLocalFile);

        System.out.println("Start uploading first file");
        boolean done = ftpClient.storeFile(firstRemoteFile, inputStream);
        inputStream.close();
        if (done) {
            System.out.println("The first file is uploaded successfully.");
        } else {
            System.out.println("upload failed");
        }

    } catch (IOException ex) {
        System.out.println("Error: " + ex.getMessage());
        ex.printStackTrace();
    } finally {
        try {
            if (ftpClient.isConnected()) {
                ftpClient.logout();
                ftpClient.disconnect();
            }
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }
}

每次输出都是“上传失败”。我不明白我错在哪里。

1 个答案:

答案 0 :(得分:0)

您的端口不正确。它使用:

FTPS via Auth TLS/SSL and implicit FTP over SSL on port 990

此外,如果您仔细阅读该网站,则上传禁止

Chilkat为希望测试安全FTP客户端功能的任何人提供此FTPS测试帐户。您可以连接到ftp.secureftp-test.com,使用密码“test”登录为“test”,并下载服务器上的任何文件。 “测试”帐户还可以检索目录列表。 但是,限制将文件上传到服务器。

参考:secureftp-test.com