Автор оригинала: Pankaj Kumar.
FTP-клиент Java используется для загрузки файлов на FTP-сервер. Недавно я работал в веб-проекте, где мне пришлось загружать много изображений на FTP-сервер. Несколько дней назад я написал программу для изменения размера изображения на java . Моя настоящая программа состояла в том, чтобы изменить размер всех изображений в каталоге, а затем загрузить их на FTP-сервер с помощью Apache Commons Net API.
Пример FTP-клиента Java
Здесь я предоставляю клиентскую программу Java FTP для загрузки файлов на FTP-сервер с помощью Apache Commons Net API.
package com.journaldev.inheritance;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import org.apache.commons.net.PrintCommandListener;
import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPReply;
public class FTPUploader {
FTPClient ftp = null;
public FTPUploader(String host, String user, String pwd) throws Exception{
ftp = new FTPClient();
ftp.addProtocolCommandListener(new PrintCommandListener(new PrintWriter(System.out)));
int reply;
ftp.connect(host);
reply = ftp.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
ftp.disconnect();
throw new Exception("Exception in connecting to FTP Server");
}
ftp.login(user, pwd);
ftp.setFileType(FTP.BINARY_FILE_TYPE);
ftp.enterLocalPassiveMode();
}
public void uploadFile(String localFileFullName, String fileName, String hostDir)
throws Exception {
try(InputStream input = new FileInputStream(new File(localFileFullName))){
this.ftp.storeFile(hostDir + fileName, input);
}
}
public void disconnect(){
if (this.ftp.isConnected()) {
try {
this.ftp.logout();
this.ftp.disconnect();
} catch (IOException f) {
// do nothing as file is already saved to server
}
}
}
public static void main(String[] args) throws Exception {
System.out.println("Start");
FTPUploader ftpUploader = new FTPUploader("ftp.journaldev.com", "ftpUser", "ftpPassword");
//FTP server path is relative. So if FTP account HOME directory is "/home/pankaj/public_html/" and you need to upload
// files to "/home/pankaj/public_html/wp-content/uploads/image2/", you should pass directory parameter as "/wp-content/uploads/image2/"
ftpUploader.uploadFile("D:\\Pankaj\\images\\MyImage.png", "image.png", "/wp-content/uploads/image2/");
ftpUploader.disconnect();
System.out.println("Done");
}
}
Вы можете использовать вышеуказанную программу для подключения к FTP-серверу, а затем загружать файлы на сервер. Убедитесь, что вы правильно указали в программе данные о хосте FTP, пользователе и пароле. Вы можете получить эти сведения при создании пользователя FTP.
Другим важным моментом, который следует отметить, является расположение каталога сервера. Это связано с домашним каталогом пользователя FTP. Кроме того, как только вы закончите загрузку всех файлов, закройте соединение с сервером и освободите ресурсы.