首页 > 代码库 > java操作FTP,实现文件上传下载删除操作

java操作FTP,实现文件上传下载删除操作

上传文件到FTP服务器:

/**      * Description: 向FTP服务器上传文件      * @param url FTP服务器hostname      * @param port FTP服务器端口,如果默认端口请写-1      * @param username FTP登录账号      * @param password FTP登录密码      * @param path FTP服务器保存目录      * @param filename 上传到FTP服务器上的文件名      * @param input 输入流      * @return 成功返回true,否则返回false      */      public static boolean uploadFile(String url, int port, String username, String password, String path,          String filename, InputStream input)      {          boolean success = false;          FTPClient ftp = new FTPClient();          try          {              int reply;                            // 连接FTP服务器              if (port > -1)              {                  ftp.connect(url, port);              }              else              {                  ftp.connect(url);              }                            // 登录FTP              ftp.login(username, password);              reply = ftp.getReplyCode();              if (!FTPReply.isPositiveCompletion(reply))              {                  ftp.disconnect();                  return success;              }              ftp.changeWorkingDirectory(path);              ftp.storeFile(filename, input);                            input.close();              ftp.logout();              success = true;          }          catch (IOException e)          {              success = false;              logger.error(EXCEPTION_NAME, e);          }          finally          {              if (ftp.isConnected())              {                  try                  {                      ftp.disconnect();                  }                  catch (IOException e)                  {                      logger.error(EXCEPTION_NAME, e);                  }              }          }          return success;      } 

从FTP服务器下载文件:

/**      * Description: 从FTP服务器下载文件      * @Version1.0 Jul 27, 2008 5:32:36 PM by 崔红保(cuihongbao@d-heaven.com)创建      * @param url FTP服务器hostname      * @param port FTP服务器端口      * @param username FTP登录账号      * @param password FTP登录密码      * @param remotePath FTP服务器上的相对路径      * @param fileName 要下载的文件名      * @param localPath 下载后保存到本地的路径      * @return      */      public static boolean downloadFile(String url, int port, String username, String password, String remotePath,          String fileName, String localPath)      {          boolean success = false;          FTPClient ftp = new FTPClient();          try          {              int reply;                            // 连接FTP服务器              if (port > -1)              {                  ftp.connect(url, port);              }              else              {                  ftp.connect(url);              }                            ftp.login(username, password);//登录              reply = ftp.getReplyCode();              if (!FTPReply.isPositiveCompletion(reply))              {                  ftp.disconnect();                  return success;              }              ftp.changeWorkingDirectory(remotePath);//转移到FTP服务器目录              FTPFile[] fs = ftp.listFiles();              for (FTPFile ff : fs)              {                  if (ff.getName().equals(fileName))                  {                      File localFile = new File(localPath + "/" + ff.getName());                                            OutputStream is = new FileOutputStream(localFile);                      ftp.retrieveFile(ff.getName(), is);                      is.close();                  }              }                            ftp.logout();              success = true;          }          catch (IOException e)          {              logger.error(EXCEPTION_NAME, e);          }          finally          {              if (ftp.isConnected())              {                  try                  {                      ftp.disconnect();                  }                  catch (IOException e)                  {                      logger.error(EXCEPTION_NAME, e);                  }              }          }          return success;      }  

删除FTP服务器上的文件:

/**      * <删除FTP上的文件>      * <远程删除FTP服务器上的录音文件>      * @param url FTP服务器IP地址      * @param port FTP服务器端口      * @param username FTP服务器登录名      * @param password FTP服务器密码      * @param remotePath 远程文件路径      * @param fileName 待删除的文件名      * @return      * @see [类、类#方法、类#成员]      */      public static boolean deleteFtpFile(String url, int port, String username, String password, String remotePath,          String fileName)      {          boolean success = false;          FTPClient ftp = new FTPClient();          try          {              int reply;                            // 连接FTP服务器              if (port > -1)              {                  ftp.connect(url, port);              }              else              {                  ftp.connect(url);              }                            // 登录              ftp.login(username, password);              reply = ftp.getReplyCode();              if (!FTPReply.isPositiveCompletion(reply))              {                  ftp.disconnect();                  return success;              }                            // 转移到FTP服务器目录              ftp.changeWorkingDirectory(remotePath);              success = ftp.deleteFile(remotePath + "/" + fileName);              ftp.logout();          }          catch (IOException e)          {              logger.error(EXCEPTION_NAME, e);              success = false;          }          finally          {              if (ftp.isConnected())              {                  try                  {                      ftp.disconnect();                  }                  catch (IOException e)                  {                      logger.error(EXCEPTION_NAME, e);                  }              }          }          return success;      }  

所需的jar包:

commons-net-2.0.jar 

本文转自:http://wenkaixuan.iteye.com/blog/1739344

java操作FTP,实现文件上传下载删除操作