Как загрузить файл с FTP-сервера на устройство Android?

#android #ftp

#Android #ftp

Вопрос:

У меня есть требование загрузить изображение с FTP-сервера на устройство Android. Я попробовал несколько примеров с помощью ftp4j-1.7.2.jar библиотеки, но не удалось подключиться к FTP-серверам и все испортилось.

Кто-нибудь работал с FTP-серверами?

Пожалуйста, предложите установить соединение и загрузить файл с сервера.

Ответ №1:

Используйте библиотеку commons.apache.org/proper/commons-net

Проверьте приведенный ниже код для загрузки файла с FTP-сервера:

 private Boolean downloadAndSaveFile(String server, int portNumber,
    String user, String password, String filename, File localFile)
    throws IOException {
FTPClient ftp = null;

try {
    ftp = new FTPClient();
    ftp.connect(server, portNumber);
    Log.d(LOG_TAG, "Connected. Reply: "   ftp.getReplyString());

    ftp.login(user, password);
    Log.d(LOG_TAG, "Logged in");
    ftp.setFileType(FTP.BINARY_FILE_TYPE);
    Log.d(LOG_TAG, "Downloading");
    ftp.enterLocalPassiveMode();

    OutputStream outputStream = null;
    boolean success = false;
    try {
        outputStream = new BufferedOutputStream(new FileOutputStream(
                localFile));
        success = ftp.retrieveFile(filename, outputStream);
    } finally {
        if (outputStream != null) {
            outputStream.close();
        }
    }

    return success;
} finally {
    if (ftp != null) {
        ftp.logout();
        ftp.disconnect();
    }
}
}
  

Комментарии:

1. Привет, я установил FTP-сервер FileZilla на свой рабочий стол. Его адрес 127.0.0.1, порт 14147. Что я должен указать для имени пользователя, пароля, имени файла, локального файла??

2. Воспользуйтесь этой ссылкой lifehacker.com/339887/build-a-home-ftp-server-with-filezilla создать пользователя с filezilla и знать, как им пользоваться. Или проверьте это для тех же настроек addictivetips.com/windows-tips /…

3. Какую библиотеку вы используете??? Я получаю java.lang. Исключение NullPointerException в org.apache.commons.net.ftp.FTP.SendCommand(FTP.java:471 )