近期要做連線ftp的**開發,老的賬號密碼忘了。所以只能在這裡記載記載,謝謝
直接貼**吧,基本注釋寫的都挺清晰的
#配置位址路徑
public class constants
工具類方法
public class ftpuntil
public ftpuntil(string ftpip, int port, string ftpname, string ftppwd)
public boolean connect()
// 設定被動模式
ftp.enterlocalpassivemode();
//設定以二進位制方式傳輸
ftp.setfiletype(ftpclient.binary_file_type);
ftp.setcharset(charset.forname("utf-8"));
ftp.setcontrolencoding("utf-8");
} catch (ioexception e)
return true;
}/**
* 建立目錄
** @param subfoldername 目錄資訊
* @return
*/public boolean createdir(string subfoldername)
string arr = subfoldername.split("/");
stringbuffer sbfdir = new stringbuffer();
//迴圈生成子目錄
for (string s : arr)
if (!ftp.makedirectory(d))
system.out.println("[成功]建立ftp目錄:" + sbfdir.tostring());
}//將目錄切換至指定路徑
return ftp.changeworkingdirectory(d);
} catch (exception e)
}/**
* 上傳到指定路徑
** @param uploadname 遠端檔案檔名
* @param localpath 本地檔案路徑
* @return
*/public resp upload(string uploadname, string localpath)
if(!(new file(localpath).exists()))
outputstream os = ftp.storefilestream(uploadname);
fis = new fileinputstream(new file(localpath));
byte b = new byte[1024];
int len = 0;
while ((len = fis.read(b)) != -1)
} catch (exception e) finally
return success("");
}/**
* @param remotepath 遠端位址檔案路徑
* @param localpath 本地檔案路徑
* @return
*/public resp download(string remotepath, string localpath)
ftpfile files =ftp.listfiles(remotepath);
if(files==null || files.length==0)
is = ftp.retrievefilestream(remotepath);
fos = new fileoutputstream(new file(localpath));
byte b = new byte[1024];
int len = 0;
while ((len = is.read(b)) != -1)
}catch (nullpointerexception e) catch (ioexception e) finally
return success("");
}public boolean i***sits(string ftppath)
ftpfile files =ftp.listfiles(ftppath);
if(files!=null&&files.length>0)else
} catch (exception e) catch (exception e1)
system.out.println("重新連線....");
ftp = null;
return i***sits(ftppath);}}
//關閉方法
private void close() catch (ioexception e)
}if (is != null) catch (ioexception e)
}if (os != null) catch (ioexception e)
}if (fis != null) catch (ioexception e)
}if (fos != null) catch (ioexception e) }}
}
這裡一定要注意。因為這裡我們的路徑是包含檔案的字尾的。
具體實現方法
public class ftpservice
/*** 匯入到ftp指定資料夾
** @param entid ftp賬戶名
* @param requestid 這就是乙個檔案的路徑,主要是為了識別上傳的檔案不重複所以才是全域性唯一
* @param filepath 本地檔案及路徑
* @param entsecret ftp密碼
* @return
*/public object importftp(string entid, string entsecret, string requestid, string filepath)
if (!filepath.endswith(".gz"))
ftp.createdir(constants.ftp_request + entid);
resp resp = ftp.upload(constants.ftp_request + entid + "/" + requestid + constants.gz, filepath);
return resp;
} catch (exception e)
}/**
* ftp匯出到臨時路徑
** @param entid 使用者名稱
* @param requestid 這就是乙個檔案的路徑,主要是為了識別上傳的檔案不重複所以才是全域性唯一
* @param entsecret 密碼
* @return
*/public object exportftp(string entid, string entsecret, string requestid)
resp resp = ftp.download(constants.ftp_response + entid + "/" + requestid + constants.response_gz, constants.local_path + requestid + constants.response_gz);
return resp;
} catch (exception e)
}}
java對ftp的相關操作
2.4 jar commons net 2.2.jar publicclass ftputil publicftputil setconfig stringhost,int port,stringusername,stringpassword 連線ftp伺服器 privateftputil conn...
FTP連線問題
1 替代方法 第一步 啟動 ie7或ie8,在選單欄選擇工具 internet 選項 高階 鉤選 啟用 ftp 資料夾檢視 在internetexplorer之外 核取方塊,然後單擊 確定 2 修改登錄檔 開啟hkey local machine software microsoft interne...
ftp連線原理
關於 ftp 事實上 僅知道如何操作 iptables 工具 還不足以設定好您的防火牆及 nat 您還要對各種 tcp ip 服務都要有相當程度的了才行 您必須知道乙個連線的建立過程是怎樣的 每乙個封包動作是怎樣從一端送到另一端的。您除了要知道每乙個封包的來源和目的位址 還要知道它們的來源埠口和目的...