Sök…


Syntax

  • FTPClient-anslutning (InetAddress-värd, int-port)
  • FTPClient-inloggning (String-användarnamn, String-lösenord)
  • FTPClient-koppling ()
  • FTPReply getReplyStrings ()
  • boolean storeFile (String remote, InputStream local)
  • OutputStream storeFileStream (String remote)
  • boolean setFileType (int fileType)
  • boolean completePendingCommand ()

parametrar

parametrar detaljer
värd Antingen värdnamnet eller IP-adressen för FTP-servern
hamn FTP-serverporten
Användarnamn FTP-serverns användarnamn
Lösenord FTP-serverns lösenord

Ansluta och logga in på en FTP-server

För att börja använda FTP med Java måste du skapa en ny FTPClient och sedan ansluta och logga in på servern med hjälp av .connect(String server, int port) och .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);
    }
}

Nu har vi gjort grunderna. Men vad händer om vi har ett fel vid anslutningen till servern? Vi vill veta när något går fel och få felmeddelandet. Låt oss lägga till lite kod för att fånga fel när du ansluter.

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 {

}

Låt oss dela upp vad vi just gjorde steg för steg.

showServerReply(ftp);

Detta hänvisar till en funktion vi kommer att göra i ett senare steg.

int replyCode = ftp.getReplyCode();

Detta hämtar svar / felkoden från servern och lagrar den som ett heltal.

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

Detta kontrollerar svarkoden för att se om det var ett fel. Om det uppstod ett fel kommer det helt enkelt att skriva ut "Operation failed. Server svarskod:" följt av felkoden. Vi har också lagt till ett try / catch block som vi kommer att lägga till i nästa steg. Låt oss nu också skapa en funktion som kontrollerar ftp.login() för fel.

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

Låt oss också bryta det här blocket.

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

Detta försöker inte bara logga in på FTP-servern, det kommer också att lagra resultatet som en boolean.

showServerReply(ftp);

Detta kommer att kontrollera om servern har skickat några meddelanden, men vi måste först skapa funktionen i nästa steg.

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

Detta uttalande kommer att kontrollera om vi har loggat in; i så fall kommer det att skriva ut "LOGGAD I SERVER", annars kommer det att skriva ut "Det gick inte att logga in på servern". Detta är vårt manus hittills:

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 {

        }
    }
}

Nu låt oss nu skapa fångstblocket om vi stöter på fel med hela processen.

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

Det färdiga fångstblocket kommer nu att skriva ut "Oj! Något gick fel." och stacktrace om det finns ett fel. Nu är vårt sista steg att skapa showServerReply() vi har använt ett tag nu.

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

Denna funktion tar en FTPClient som en variabel och kallar den "ftp". Efter det lagrar alla servern svar från servern i ett sträng array. Därefter kontrollerar det om några meddelanden har lagrats. Om det finns något, skrivs det ut var och en av dem som "SERVER: [svar]". Nu när vi har gjort den funktionen är detta det färdiga skriptet:

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

Vi måste först skapa en ny FTPClient och försöka ansluta till servern och logga in på den med .connect(String server, int port) och .login(String username, String password) . Det är viktigt att ansluta och logga in med ett try / catch block om vår kod inte ansluter till servern. Vi måste också skapa en funktion som kontrollerar och visar alla meddelanden vi kan få från servern när vi försöker ansluta och logga in. Vi kommer att kalla denna funktion " 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();
        }
    }
}

Efter detta bör du nu ha din FTP-server ansluten till ditt Java-skript.



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow