linux ftp上傳文件用java代碼實現

在java中上傳下載文件:

1.首先下載 commons-net-3.3.jar文件

     jar文件下載地址:http://download.csdn.net/detail/nly19900820/9237477

2.在自己的項目中新建工具類:Ftputil.java

package com.nly.util;

import java.io.DataOutputStream;    
import java.io.IOException;
import java.io.InputStream;    
import java.io.OutputStream;    
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPReply;
import sun.net.TelnetInputStream;    
import sun.net.TelnetOutputStream;    
import sun.net.ftp.FtpClient; 


public class Ftputil {
	
	/** 
	 * Description: 向FTP服務器上傳文件  
	 * @param url FTP服務器hostname 
	 * @param port FTP服務器端口 
	 * @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 {  
	        ftp.connect(url, port);//連接FTP服務器  
	        //如果採用默認端口,可以使用ftp.connect(url)的方式直接連接FTP服務器  
	        ftp.login(username, password);//登錄  
	        int reply = ftp.getReplyCode();  
	        System.out.println("FTP連接結果:"+reply);
	        if (!FTPReply.isPositiveCompletion(reply)) {  //FTP連接沒有登錄成功。
	            ftp.disconnect();  
	            System.out.println("10");
	            return success;  
	        }  
	        System.out.println("11");
	        ftp.changeWorkingDirectory(path);  
	        ftp.storeFile(filename, input);           
	        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;  
	}  
}


3.上傳示例代碼:

ip地址:目標FTP的ip地址

端口:21 (默認端口-如果沒有自行修改過端口,ftp默認都是21)

登錄用戶名:ftp登錄用戶名

登錄密碼:ftp登錄密碼

保存地址:上傳後保存到的地址

文件名字:上傳成功後保存文件的名字(可以與源文件名字不一樣)

in:輸入流

try {  
FileInputStream in=new FileInputStream(new File("/opt/tomcat/webapps/Test_RSA/private_key_test10_pkcs8.pem"));  //上傳文件本地地址
	boolean flag = util.uploadFile("ip地址", 端口, "登錄用戶名", "登錄密碼", " 保存地址", "文件名字", in);  
	System.out.println("上傳結果:"+flag);  
} catch (FileNotFoundException e) {  
		        e.printStackTrace();  
}  

flag 爲true,表示上傳成功。

ftp連接結果爲:230表示ftp登錄成功。

ftp連接結果爲:530 表示ftp登錄失敗,有可能是登錄密碼不對。或者是其他參數不對造成。




發佈了25 篇原創文章 · 獲贊 9 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章