1 import java.io.File; 2 import java.io.FileInputStream; 3 import org.apache.commons.net.ftp.FTPClient; 4 import org.apache.commons.net.ftp.FTPReply; 5 6 public class test { 7 8 private FTPClient ftp; 9 /** 10 * 11 * @param path 上传到ftp服务器哪个路径下 12 * @param addr 地址 13 * @param port 端口号 14 * @param username 用户名 15 * @param password 密码 16 * @return 17 * @throws Exception 18 */ 19 private boolean connect(String path,String addr,int port,String username,String password) throws Exception { 20 boolean result = false; 21 ftp = new FTPClient(); 22 int reply; 23 ftp.connect(addr,port); 24 ftp.login(username,password); 25 ftp.setFileType(FTPClient.BINARY_FILE_TYPE); 26 reply = ftp.getReplyCode(); 27 if (!FTPReply.isPositiveCompletion(reply)) { 28 ftp.disconnect(); 29 return result; 30 } 31 ftp.changeWorkingDirectory(path); 32 result = true; 33 return result; 34 } 35 /** 36 * 37 * @param file 上传的文件或文件夹 38 * @throws Exception 39 */ 40 private void upload(File file) throws Exception{ 41 if(file.isDirectory()){ 42 ftp.makeDirectory(file.getName()); 43 ftp.changeWorkingDirectory(file.getName()); 44 String[] files = file.list(); 45 for (int i = 0; i < files.length; i++) { 46 File file1 = new File(file.getPath()+"\\"+files[i] ); 47 if(file1.isDirectory()){ 48 upload(file1); 49 ftp.changeToParentDirectory(); 50 }else{ 51 File file2 = new File(file.getPath()+"\\"+files[i]); 52 FileInputStream input = new FileInputStream(file2); 53 ftp.storeFile(file2.getName(), input); 54 input.close(); 55 } 56 } 57 }else{ 58 File file2 = new File(file.getPath()); 59 FileInputStream input = new FileInputStream(file2); 60 ftp.storeFile(file2.getName(), input); 61 input.close(); 62 } 63 } 64 public static void main(String[] args) throws Exception{ 65 test t = new test(); 66 t.connect("", "localhost", 21, "yhh", "yhhazr"); 67 File file = new File("e:\\uploadify"); 68 t.upload(file); 69 } 70 }
其中port:21是默认端口,可以不写