Recherche…


Syntaxe

  • FTPClient connect (hôte InetAddress, port int)
  • Connexion FTPClient (nom d'utilisateur String, mot de passe String)
  • FTPClient déconnecter ()
  • FTPRéponse getReplyStrings ()
  • boolean storeFile (Chaîne distante, InputStream local)
  • OutputStream storeFileStream (Chaîne distante)
  • boolean setFileType (int fileType)
  • boolean completePendingCommand ()

Paramètres

Paramètres Détails
hôte Soit le nom d'hôte ou l'adresse IP du serveur FTP
Port Le port du serveur FTP
Nom d'utilisateur Le nom d'utilisateur du serveur FTP
mot de passe Le mot de passe du serveur FTP

Connexion et connexion à un serveur FTP

Pour commencer à utiliser FTP avec Java, vous devez créer un nouveau FTPClient , puis vous connecter et vous connecter au serveur en utilisant .connect(String server, int port) et .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);
    }
}

Maintenant, nous avons les bases faites. Mais que faire si nous avons une erreur de connexion au serveur? Nous voulons savoir quand quelque chose ne va pas et obtenir le message d'erreur. Ajoutons du code pour intercepter les erreurs lors de la connexion.

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 {

}

Décomposons ce que nous venons de faire, pas à pas.

showServerReply(ftp);

Cela fait référence à une fonction que nous allons effectuer ultérieurement.

int replyCode = ftp.getReplyCode();

Cela récupère le code de réponse / erreur du serveur et le stocke sous forme d'entier.

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

Cela vérifie le code de réponse pour voir s'il y avait une erreur. S'il y avait une erreur, il afficherait simplement "Échec de l'opération. Code de réponse du serveur:" suivi du code d'erreur. Nous avons également ajouté un bloc try / catch que nous ajouterons à l'étape suivante. Ensuite, créons également une fonction qui vérifie les 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");
    }

Brisons ce bloc aussi.

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

Cela ne va pas simplement tenter de se connecter au serveur FTP, il va également stocker le résultat sous forme de booléen.

showServerReply(ftp);

Cela permettra de vérifier si le serveur nous a envoyé des messages, mais nous devrons d'abord créer la fonction à l'étape suivante.

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

Cette déclaration vérifiera si nous nous sommes connectés avec succès; Si c'est le cas, il affichera "LOGGED IN SERVER", sinon il affichera "Impossible de se connecter au serveur". Ceci est notre script jusqu'à présent:

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 {

        }
    }
}

Maintenant, nous allons créer le bloc Catch au cas où nous aurions des erreurs avec le processus entier.

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

Le bloc catch terminé affichera maintenant "Oops! Quelque chose ne va pas." et le stacktrace s'il y a une erreur. Maintenant, notre dernière étape consiste à créer le showServerReply() nous utilisons depuis un certain temps.

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);
        }
    }
}

Cette fonction prend un FTPClient tant que variable et l'appelle "ftp". Après cela, il stocke toutes les réponses du serveur du serveur dans un tableau de chaînes. Ensuite, il vérifie si des messages ont été stockés. S'il y en a, il imprime chacun d'eux comme "SERVER: [reply]". Maintenant que cette fonction est terminée, voici le script terminé:

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();
        }
    }
}

Nous devons d'abord créer un nouveau FTPClient et essayer de nous connecter au serveur et nous connecter en utilisant .connect(String server, int port) et .login(String username, String password) . Il est important de se connecter et de se connecter en utilisant un bloc try / catch au cas où notre code ne parviendrait pas à se connecter au serveur. Nous devrons également créer une fonction qui vérifie et affiche tous les messages que nous pouvons recevoir du serveur lorsque nous essayons de nous connecter et de nous connecter. Nous appellerons cette fonction " 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();
        }
    }
}

Après cela, vous devriez maintenant avoir votre serveur FTP connecté à votre script Java.



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow