Поиск…


Синтаксис

  • Соединение FTPClient (хост InetAddress, int port)
  • Логин FTPClient (имя пользователя String, пароль String)
  • Отключение FTPClient ()
  • FTPReply getReplyStrings ()
  • boolean storeFile (String remote, InputStream local)
  • Хранилище OutputStreamFileStream (String remote)
  • boolean setFileType (int fileType)
  • boolean completePendingCommand ()

параметры

параметры подробности
хозяин Либо имя хоста, либо IP-адрес FTP-сервера
порт Порт FTP-сервера
имя пользователя Имя пользователя FTP-сервера
пароль Пароль FTP-сервера

Подключение и вход в FTP-сервер

Чтобы начать использовать FTP с Java, вам нужно будет создать новый FTPClient а затем подключиться и войти на сервер с помощью .connect(String server, int port) и .login(String username, String password) .

import java.io.IOException;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPReply;
//Import all the required resource for this project.

public class FTPConnectAndLogin {
    public static void main(String[] args) {
        // SET THESE TO MATCH YOUR FTP SERVER //
        String server = "www.server.com"; //Server can be either host name or IP address.
        int port = 21;
        String user = "Username";
        String pass = "Password";

        FTPClient ftp = new FTPClient;
        ftp.connect(server, port);
        ftp.login(user, pass);
    }
}

Теперь у нас есть основы. Но что, если у нас есть ошибка подключения к серверу? Мы хотим знать, когда что-то пойдет не так, и получите сообщение об ошибке. Давайте добавим код, чтобы поймать ошибки при подключении.

try {
    ftp.connect(server, port);
    showServerReply(ftp);
    int replyCode = ftp.getReplyCode();
    if (!FTPReply.isPositiveCompletion(replyCode)) {
        System.out.printIn("Operation failed. Server reply code: " + replyCode)
        return;
    }
    ftp.login(user, pass);
} catch {

}

Давайте сломаем то, что мы только что сделали, шаг за шагом.

showServerReply(ftp);

Это относится к функции, которую мы будем делать на более позднем этапе.

int replyCode = ftp.getReplyCode();

Это захватывает код ответа / ошибки с сервера и сохраняет его как целое.

if (!FTPReply.isPositiveCompletion(replyCode)) {
    System.out.printIn("Operation failed. Server reply code: " + replyCode)
    return;
}

Это проверяет код ответа, чтобы узнать, была ли ошибка. Если произошла ошибка, она просто выведет «Операция не выполнена. Код ответа сервера:», за которой следует код ошибки. Мы также добавили блок try / catch, который мы добавим на следующем шаге. Затем давайте создадим функцию, которая проверяет ftp.login() наличие ошибок.

boolean success = ftp.login(user, pass);
showServerReply(ftp);
if (!success) {
    System.out.println("Failed to log into the server");
        return;
    } else {
        System.out.println("LOGGED IN SERVER");
    }

Давайте также сломаем этот блок.

boolean success = ftp.login(user, pass);

Это не просто попытка входа на FTP-сервер, но и сохранение результата в виде логического.

showServerReply(ftp);

Это проверит, посылал ли сервер нам какие-либо сообщения, но сначала нам нужно создать функцию на следующем шаге.

if (!success) {
System.out.println("Failed to log into the server");
    return;
} else {
    System.out.println("LOGGED IN SERVER");
}

Этот оператор проверяет, успешно ли мы вошли в систему; если это так, он напечатает «LOGGED IN SERVER», иначе он напечатает «Не удалось войти в сервер». Это наш скрипт:

import java.io.IOException;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPReply;

public class FTPConnectAndLogin {
    public static void main(String[] args) {
        // SET THESE TO MATCH YOUR FTP SERVER //
        String server = "www.server.com";
        int port = 21;
        String user = "username"
        String pass = "password"

        FTPClient ftp = new FTPClient
        try {
            ftp.connect(server, port)
            showServerReply(ftp);
            int replyCode = ftpClient.getReplyCode();
            if (!FTPReply.isPositiveCompletion(replyCode)) {
                    System.out.println("Operation failed. Server reply code: " + replyCode);
                    return;
                }
            boolean success = ftp.login(user, pass);
            showServerReply(ftp);
            if (!success) {
                System.out.println("Failed to log into the server");
                return;
            } else {
                System.out.println("LOGGED IN SERVER");
            }
        } catch {

        }
    }
}

Теперь давайте создадим полный блок Catch, если мы столкнемся с любыми ошибками всего процесса.

} catch (IOException ex) {
    System.out.println("Oops! Something went wrong.");
    ex.printStackTrace();
}

Завершенный блок блокировки теперь будет печатать «Ой, что-то пошло не так». и stacktrace, если есть ошибка. Теперь наш последний шаг - создать showServerReply() мы использовали некоторое время.

private static void showServerReply(FTPClient ftp) {
    String[] replies = ftp.getReplyStrings();
    if (replies != null && replies.length > 0) {
    for (String aReply : replies) { 
        System.out.println("SERVER: " + aReply);
        }
    }
}

Эта функция принимает FTPClient как переменную и называет ее «ftp». После этого он хранит любые серверные ответы с сервера в массиве строк. Затем он проверяет, сохранены ли какие-либо сообщения. Если он есть, он печатает каждый из них как «СЕРВЕР: [ответ]». Теперь, когда мы выполнили эту функцию, это завершенный скрипт:

import java.io.IOException;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPReply;

public class FTPConnectAndLogin {
    private static void showServerReply(FTPClient ftp) {
        String[] replies = ftp.getReplyStrings(); 
        if (replies != null && replies.length > 0) {
        for (String aReply : replies) {
            System.out.println("SERVER: " + aReply);
            }
        }
    }

    public static void main(String[] args) {
        // SET THESE TO MATCH YOUR FTP SERVER //
        String server = "www.server.com";
        int port = 21;
        String user = "username"
        String pass = "password"

        FTPClient ftp = new FTPClient
        try {
            ftp.connect(server, port)
            showServerReply(ftp);
            int replyCode = ftpClient.getReplyCode();
            if (!FTPReply.isPositiveCompletion(replyCode)) {
                System.out.println("Operation failed. Server reply code: " + replyCode);
                return;
            }
            boolean success = ftp.login(user, pass);
            showServerReply(ftp);
            if (!success) {
                System.out.println("Failed to log into the server");
                return;
            } else {
                System.out.println("LOGGED IN SERVER");
            }
        } catch (IOException ex) {
            System.out.println("Oops! Something went wrong.");
            ex.printStackTrace();
        }
    }
}

Сначала нам нужно создать новый FTPClient и попробовать подключиться к серверу и войти в него с помощью .connect(String server, int port) и .login(String username, String password) . Важно подключиться и войти в систему с помощью блока try / catch, если наш код не сможет подключиться к серверу. Нам также необходимо создать функцию, которая проверяет и отображает любые сообщения, которые мы можем получать с сервера, когда мы пытаемся подключиться и войти в систему. Мы будем называть эту функцию « showServerReply(FTPClient ftp) ».

import java.io.IOException;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPReply;

public class FTPConnectAndLogin {
    private static void showServerReply(FTPClient ftp) {
        if (replies != null && replies.length > 0) {
        for (String aReply : replies) {
            System.out.println("SERVER: " + aReply);
            }
        }
    }

public static void main(String[] args) {
    // SET THESE TO MATCH YOUR FTP SERVER //
    String server = "www.server.com";
    int port = 21;
    String user = "username"
    String pass = "password"

FTPClient ftp = new FTPClient
try {
    ftp.connect(server, port)
    showServerReply(ftp);
    int replyCode = ftpClient.getReplyCode();
    if (!FTPReply.isPositiveCompletion(replyCode)) {
            System.out.println("Operation failed. Server reply code: " + replyCode);
            return;
        }
    boolean success = ftp.login(user, pass);
    showServerReply(ftp);
    if (!success) {
        System.out.println("Failed to log into the server");
            return;
        } else {
            System.out.println("LOGGED IN SERVER");
        }
    } catch (IOException ex) {
        System.out.println("Oops! Something went wrong.");
        ex.printStackTrace();
        }
    }
}

После этого вы должны теперь подключить свой FTP-сервер к вам Java-скрипту.



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow