Как загрузить на FTP-сервер в Java? - PullRequest
1 голос
/ 30 июня 2011

У меня есть следующий метод для загрузки_файлов на FTP-сервер, я не получаю никаких ошибок, но файл не появляется на сервере после его запуска. В чем может быть проблема?

public static void upload_files(String un, String pw, String ip, String dir, String fn){
    FTPClient client = new FTPClient();
    FileInputStream fis = null;

    try {
        client.connect(ip);
        client.login(un, pw);

        String filename = dir+"/"+fn;
        fis = new FileInputStream(filename);

        client.storeFile(filename, fis);
        client.logout();
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        try {
            if (fis != null) {
                fis.close();
            }
            client.disconnect();
            System.out.println("uploaded");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

1 Ответ

3 голосов
/ 30 июня 2011

Существует ряд возможных проблем.Предполагается, что вы используете FTPClient 3.x из Apache commons-net.Если вы используете что-то другое, вы должны указать это в своем вопросе.Идеи:

  • Проверьте статус ответа соединения, чтобы убедиться, что вы подключаетесь должным образом.Пример того, как это сделать, есть в JavaDoc .

  • Ваша переменная filename - это путь к локальному файлу, который вы хотите отправить.Это действительно тот же путь, который вы хотите использовать для хранения файла на сервере (относительно корня входа в систему FTP)?Возможно, но обычно это не так.Если нет, ваш первый параметр client.storeFile (...) должен быть изменен.

  • Большинство FTP-серверов позволяют регистрировать все действия.Вы можете получить доступ к своему?Если так, то обычно быстро становится ясно, что происходит не так.

...