ENDRPrint/.svn/pristine/3e/3ed435f1522f7f6fe1d5a20ec0fd68f02472e8ef.svn-base
2024-08-14 10:33:27 +07:00

110 lines
3.8 KiB
Plaintext

package th.co.muangthai.endrprint.controller.service.ftp;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
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.FTPFile;
import org.apache.commons.net.ftp.FTPReply;
import static org.junit.Assert.assertTrue;
public class FTPFunctions {
// Creating FTP Client instance
FTPClient ftp = null;
// Constructor to connect to the FTP Server
public FTPFunctions(String host, int port, String username, String password) throws Exception{
ftp = new FTPClient();
ftp.addProtocolCommandListener(new PrintCommandListener(new PrintWriter(System.out)));
int reply;
ftp.connect(host,port);
System.out.println("FTP URL is:"+ftp.getDefaultPort());
reply = ftp.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
ftp.disconnect();
throw new Exception("Exception in connecting to FTP Server");
}
ftp.login(username, password);
ftp.setFileType(FTP.BINARY_FILE_TYPE);
ftp.enterLocalPassiveMode();
}
// Method to upload the File on the FTP Server
public void uploadFTPFile(String localFileFullName, String fileName, String hostDir)
throws Exception
{
try {
InputStream input = new FileInputStream(new File(localFileFullName));
this.ftp.storeFile(hostDir + fileName, input);
}
catch(Exception e){
}
}
// // Download the FTP File from the FTP Server
// public void downloadFTPFile(String source, String destination) {
// try (FileOutputStream fos = new FileOutputStream(destination)) {
// this.ftp.retrieveFile(source, fos);
// } catch (IOException e) {
// e.printStackTrace();
// }
// }
// list the files in a specified directory on the FTP
public boolean listFTPFiles(String directory, String fileName) throws IOException {
// lists files and directories in the current working directory
boolean verificationFilename = false;
FTPFile[] files = ftp.listFiles(directory);
for (FTPFile file : files) {
String details = file.getName();
System.out.println(details);
if(details.equals(fileName))
{
System.out.println("Correct Filename");
verificationFilename=details.equals(fileName);
assertTrue("Verification Failed: The filename is not updated at the CDN end.",details.equals(fileName));
}
}
return verificationFilename;
}
// Disconnect the connection to FTP
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
}
}
}
// Main method to invoke the above methods
public static void main(String[] args) {
try {
FTPFunctions ftpobj = new FTPFunctions("10.200.52.131", 21, "ftpmtl", "pass#word1");
ftpobj.uploadFTPFile("C:\\LOGGING\\PRTENDR\\File\\FPO1_20151224_122241.dat", "FPO1_20151224_122241.dat", "/Insurance/tempTest/");
//ftpobj.downloadFTPFile("Shruti.txt", "/users/shruti/Shruti.txt");
System.out.println("FTP File downloaded successfully");
//boolean result = ftpobj.listFTPFiles("/users/shruti", "shruti.txt");
//System.out.println(result);
ftpobj.disconnect();
} catch (Exception e) {
e.printStackTrace();
}
}
}