jdk1.7 上传文件至ftp服务器

时间:2022-06-01 22:06:08

private static boolean uploadFile(

  String url,// FTP服务器hostname
  int port,// FTP服务器端口
  String username, // FTP登录账号
  String password, // FTP登录密码
  String path, // FTP服务器保存目录
  String filename, // 上传到FTP服务器上的文件名
  InputStream input // 输入流
){
  boolean success = false;
  FTPClient ftp = new FTPClient();
  ftp.setControlEncoding("UTF-8");
  try {
    int reply;
    ftp.connect(url,port);// 连接FTP服务器
    // 如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器
    ftp.login(username, password);// 登录
    reply = ftp.getReplyCode();
    ftp.setDataTimeout(120000); //设置超时时间
    if (!FTPReply.isPositiveCompletion(reply)) {
      ftp.disconnect();
      System.err.println("FTP server refused connection.");
      return success;
    }
    ftp.makeDirectory(path);
    ftp.changeWorkingDirectory(path);
    ftp.enterLocalPassiveMode();
    ftp.storeFile(filename, input);
    ftp.setFileType(FTPClient.BINARY_FILE_TYPE);
    input.close();
    ftp.logout();
    success = true;
  } catch (IOException e) {
    e.printStackTrace();
  } finally {
    if (ftp.isConnected()) {
      try {
        ftp.disconnect();
      } catch (IOException ioe) {
        ioe.printStackTrace();
      }
    }
  }
  return success;

}