Home / Programmazione / Java / FTP upload con Java
Mattepuffo

FTP upload con Java

FTP upload con Java

Oggi vediamo come fare l'upload di file su un server FTP in Java.

Per la conessione al server useremo le librerie Apache Net Commons (che potete scaricare da qua).

Questa libreria è molto potente ed ha molti strumenti integrati.

Noi ne vedremo una piccola parte ovviamente.

Scaricate la libreria e aggiungete il JAR al vostro progetto.

Poi create una classe per la connessione e upload; nel nostro esempio avremo un unico metodo:

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.net.SocketException;
import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPReply;

public class FtpUpload {

    private static final String HOSTNAME = "";
    private static final String USER = "";
    private static final String PASSWORD = "";
    private static final String LOCAL_FILE = "";

    public static void uploadFile() throws SocketException, IOException {
        FTPClient ftp = new FTPClient();
        ftp.connect(HOSTNAME);
        ftp.login(USER, PASSWORD);
        ftp.setFileType(FTP.BINARY_FILE_TYPE);
        ftp.changeWorkingDirectory("");
        int reply = ftp.getReplyCode();
        if (FTPReply.isPositiveCompletion(reply)) {
            FileInputStream in = new FileInputStream(new File(LOCAL_FILE));
            ftp.storeFile("films.sqlite", in);
        }
        ftp.logout();
        ftp.disconnect();
    }
}

Come vedete un esempio basico.

Nel metodo uploadFile istanziamo un oggetto FTPClient, che ci permette di connetterci al server FTP.

Il metodo changeWorkingDirectory serve per spostarsi dentro ad una directory dopo la connessione.

Sotto leggiamo la risposta del server con getReplyCode; nel caso di risposta affermativa inviamo il nostro file (identificato da un FileInputStream) e lo inviamo al server con il metodo storeFile.

Al termine facciamo il logout e chudiamo la connessione.

Come vedete la libreria è molto semplice da usare.

Enjoy!