上传文件到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包:
本文转自:http://wenkaixuan.iteye.com/blog/1739344