Java, Programming

Java Upload Files to FTP Server without Lib

upload-files-to-ftp-server-using-java

 

import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import sun.net.TelnetOutputStream;
import sun.net.ftp.FtpClient;
// sun.net.TelnetOutputStream and sun.net.ftp.FtpClient are default classes in JavaSE6
// You can find the classes in ${JAVA_HOME}/jre/lib/rt.jar
// So you don't need to download other .jar file
// But you cannot find in general APIs
/**
 * @param hostname FTP Server
 * @param port Port Number
 * @param username FTP Server Login Username
 * @param password FTP Server Login Password
 * @param source File to upload to FTP Server
 * @param destination The name of file to upload to FTP Server
 */
public static void send(String hostname, int port, String username, String password, File source, String destination) throws IOException {
  FtpClient ftp = new FtpClient(hostname, port);
  ftp.login(username, password);
  ftp.binary();
  FileInputStream fos = new FileInputStream(source);
  TelnetOutputStream tos = ftp.put(destination);
  DataOutputStream dos = new DataOutputStream(tos);
  byte[] buffer = new byte[1024 * 1024];
  for (int length; (length = fos.read(buffer)) > 0;) {
    dos.write(buffer, 0, length);
  }
  tos.flush();
  tos.close();
  fos.close();
}
public static void send(String hostname, String username, String password, File source, String destination) throws IOException {
  send(hostname, 21, username, password, source, destination);
}
Tags: