package com.sinosoft.sepmis.util; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import org.apache.commons.net.ftp.FTPClient; import org.apache.commons.net.ftp.FTPReply; /** * Java自带的API对FTP的操做 * @Title:Ftp.java * @author: shanhongzhi */ public class FtpUtil { /** * 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) throws Exception { 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(); System.out.println(reply); 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; throw e; } finally { if (ftp.isConnected()) { try { ftp.disconnect(); } catch (IOException e) { throw e; } } } return success; } public static void main(String agrs[]) { try { File file = new File("E:\\1.txt"); FileInputStream in = new FileInputStream(file); /* * 使用默认的端口号、用户名、密码以及根目录链接FTP服务器 */ //返回true上传成功,不然上传失败 // FtpUtil.uploadFile("192.168.61.209", -22, "instiaci", "instiaci", "/db2home/instiaci/personal/shanhz","2.txt",in); FtpUtil.uploadFile("192.168.61.104", 22, "administrator", "123456", "/sinopipi/IC","6.txt",in); } catch (Exception e) { e.printStackTrace(); } } }
说明:使用apache提供的commons-net-2.0.jar自带的ftp功能,也能够实现文件下载功能
java