Java FTP 基本操作

2021-08-26 08:09:46 字數 2042 閱讀 6090

最近工作中用到了 ftp 相關的操作,所以藉此機會了解了下具體內容。

關於 ftp 基礎推薦閱讀《使用 socket 通訊實現 ftp 客戶端程式》,其中需要特別注意的是主動模式和被動模式,這一部分在日常使用中經常被忽略,但生產環境中可能會出問題,關鍵在於防火牆對埠的控制。

程式操作 ftp 過程在上面推薦的文章中有所提及,大家可以看到過程還是比較複雜的,不過好在有 apache 的 commons-net 給我們提供了相關的工具類可以使用,本文使用的是 3.6 版本。以下通過**進行說明,此**僅演示功能,很多地方並不完善,如果用作生產請自行修改。

/**

* ftp傳送至目標伺服器

*@apinote 依賴apache commons-net 包

*@param server

*/public

static

void

sendtoserverbyftp(string server, int port, string username, string password,

string encoding, string filelocalpath, string fileremotepath, string fileremotename) throws ioexception

// 設定編碼,當檔案中存在中文且上傳後檔案亂碼時可使用此配置項

// 切換為本地被動模式,可以解決ftp上傳後檔案為空的問題,但需要伺服器將ftp服務新增至防火牆白名單

// 切換到指定目錄

ftpclient.changeworkingdirectory(fileremotepath);

// 獲取檔案並上傳

file file = new file(filelocalpath);

inputstream inputstream = new fileinputstream(file);

//檔名為中文名且上傳後出現亂碼時啟用此項

//string filename = new string(fileremotename.getbytes(encoding), "iso8859-1");

boolean flag = ftpclient.storefile(fileremotename, inputstream);

// 關閉已占用資源

inputstream.close();

ftpclient.logout();

}

public

void

downloadfile(string server, int port, string username, string password,

string serverpath, string localpath, string filename) throws ioexception

// 切換伺服器至目標目錄

ftpclient.changeworkingdirectory(serverpath);

file file = new file(localpath);

fileoutputstream fileoutputstream = new fileoutputstream(file);

ftpclient.retrievefile(filename, fileoutputstream);

// 關閉資源占用

fileoutputstream.close();

ftpclient.logout();

}

public

void

deletefile(string server, int port, string username, string password,

string serverpath, string filename) throws ioexception

ftpclient.changeworkingdirectory(serverpath);

ftpclient.deletefile(filename);

}

java Ftp檔案上傳

附件ajax上傳處理 author date 2015 7 10 下午4 30 32 ftp工具類 author date 2015 10 9 下午2 06 14 public class ftputil bool true catch exception e bool false return b...

mysql基本操作 MySQL基本操作

mysql中新增使用者,新建資料庫,使用者授權,刪除使用者,修改密碼 注意每行後邊都跟個 表示乙個命令語句結束 1.新建使用者 1.1 登入mysql mysql u root p 密碼 1.2 建立使用者 mysql insert into mysql.user host,user,passwor...

mysql 基本操作 mysql基本操作

mysql 建立表,並設定主鍵自增 create table log logid int 4 primary key not null auto increment,logtitle varchar 32 not null logcontent varchar 160 not null logtim...