package org.arquillian.cube.containerobject; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import org.apache.commons.net.ftp.FTP; import org.apache.commons.net.ftp.FTPClient; import org.apache.commons.net.ftp.FTPReply; public class FtpClient { FTPClient ftpClient; public FtpClient(String host, int port, String user, String password) throws Exception { ftpClient = new FTPClient(); int reply; ftpClient.connect(host, port); reply = ftpClient.getReplyCode(); if (!FTPReply.isPositiveCompletion(reply)) { ftpClient.disconnect(); throw new Exception("Exception in connecting to FTP Server"); } ftpClient.login(user, password); ftpClient.setFileType(FTP.BINARY_FILE_TYPE); ftpClient.enterLocalActiveMode(); } public void uploadFile(File fileToUplaod, String filename, String hostDir) throws IOException { try (InputStream input = new FileInputStream(fileToUplaod)) { this.ftpClient.storeFile(hostDir + "/" + filename, input); } } public void disconnect() { if (this.ftpClient.isConnected()) { try { this.ftpClient.logout(); this.ftpClient.disconnect(); } catch (IOException f) { // do nothing as file is already saved to server } } } }