⑴ ftp如何下載文件
1、打開電腦界面,雙擊一個瀏覽器
注意事項:
FTP支持兩種模式,一種方式叫做Standard (也就是 PORT方式,主動方式),一種是 Passive(也就是PASV,被動方式)。 Standard模式 FTP的客戶端發送 PORT 命令到FTP伺服器。Passive模式FTP的客戶端發送 PASV命令到 FTP Server。
默認情況下FTP協議使用TCP埠中的 20和21這兩個埠,其中20用於傳輸數據,21用於傳輸控制信息。但是,是否使用20作為傳輸數據的埠與FTP使棗做衡用的傳輸模式有關,如果採用主動模式,那麼數據凳做傳輸埠就是20;如果採用被動模式,則具體最終使用哪個埠胡顫要伺服器端和客戶端協商決定。
⑵ 用ftp命令打包上傳後怎麼遠程解包
一般情況下,本地直接使用FTP命令也可以連接遠程電腦。在地址框中輸入FTP://IP地址,然後回車。
在打開的窗口中輸入用戶名和密碼進行驗證。
使用專業的FTP軟體了,在網路中搜索ftp上傳工具就可以看到好多的FTP軟體,選擇FileZilla進行下載。
下載後,直接雙擊filezilla.exe打開。
會有安全警告,不影響,直接運行就行。
在打開的窗口最上方,輸入遠程主機IP,用戶名,密碼,埠不用輸,然後點擊「快速連接」。
稍候片刻,就會顯示一大堆信息狀態,包括「列出目錄成功」。這時,說明成功連接到遠程伺服器。可以看到左側為本地站點文件夾和文件,右側為遠程電腦的文件夾和文件,現在可以隨心所欲地進行遠程文件上傳下載
⑶ 用java實現FTP需要導入什麼包,導入哪裡呢,能不能改個包
com.jcraft.jsch_0.1.31.jar,commons-net-3.2.jar。這是我實現FTP上傳使用的jar,希望對你有用。
⑷ 對JAVA的兩個FTP包進行比較分析
ftp *;
這是一個不被官方支持的 但是放在JDK下面的FTP包 正因做盯為不被支
持 所以沒有官方提供API 這是其最大的缺陷之一 最重要由於不是官方支持的
所以文歷液檔也是沒有的
[url]l[/url]
這里有該包的API
先給一個簡單的例子 (例子來源互聯網)
)顯示FTP伺服器上的文件
void ftpList_actionPerformed(ActionEvent e) {
String server=serverEdit getText();//輸入的FTP伺服器的IP地址
String user=userEdit getText(); file://登/錄FTP伺服器的用戶名
String password=passwordEdit getText();//登錄FTP伺服器的用戶名的口令
String path=pathEdit getText();//FTP伺服器上的路徑
try {
FtpClient ftpClient=new FtpClient();//創建FtpClient對象
ftpClient openServer(server);//連接FTP伺服器
ftpClient login(user password);//登錄FTP伺服器
if (path length()!= ) ftpClient cd(path);
TelnetInputStream is=ftpClient list();
int c;
while ((c=is read())!= ) {
System out print((char) c);}
is close();
ftpClient closeServer();//退出FTP伺服器
} catch (IOException ex) {;}
}
)從FTP伺服器上下傳一個文件
void getButton_actionPerformed(ActionEvent e) {
String server=serverEdit getText();
String user=userEdit getText();
String password=passwordEdit getText();
String path=pathEdit getText();
String filename=filenameEdit getText();
try {
FtpClient ftpClient=new FtpClient();
ftpClient openServer(server);
ftpClient login(user password);
if (path length()!= ) ftpClient cd(path);
ftpClient binary();
TelnetInputStream is=ftpClient get(filename);
File file_out=new File(filename);
FileOutputStream os=new
FileOutputStream(file_out);
純爛和byte[] bytes=new byte[ ];
int c;
while ((c=is read(bytes))!= ) {
os write(bytes c);
}
is close();
os close();
ftpClient closeServer();
} catch (IOException ex) {;}
}
)向FTP伺服器上上傳一個文件
void putButton_actionPerformed(ActionEvent e) {
String server=serverEdit getText();
String user=userEdit getText();
String password=passwordEdit getText();
String path=pathEdit getText();
String filename=filenameEdit getText();
try {
FtpClient ftpClient=new FtpClient();
ftpClient openServer(server);
ftpClient login(user password);
if (path length()!= ) ftpClient cd(path);
ftpClient binary();
TelnetOutputStream os=ftpClient put(filename);
File file_in=new File(filename);
FileInputStream is=new FileInputStream(file_in);
byte[] bytes=new byte[ ];
int c;
while ((c=is read(bytes))!= ){
os write(bytes c);}
is close();
os close();
ftpClient closeServer();
} catch (IOException ex) {;}
}
}
看了這個例子 應該就能用他寫東西了
這個包缺點很多 首先就是不被支持也不被官方推薦使用
其次是這個包功能過於簡單 簡單到無法區分FTP伺服器上的File是文件還是目錄 有人說
通過返回的字元串來判斷 但是據說FTP在不同系統下返回的東西不大一樣 所以如果通過
判斷字元串會有不好移植的問題
自己想出了一個辦法 通過FtpClient中的cd方法來判斷
代碼如下
try{
ftp cd(file);//file為當前判斷的文件
//如果過了說明file是目錄
}
catch(IOException e){
//說明file是文件
}
finally{
ftp cd( );//返回上級目錄繼續判斷下一文件
}
我用這種方法做過嘗試 結果是只能判斷正確一部分 有些目錄仍會被認做文件 不知道
是我的方法有錯還是別的什麼原因
如果對FTP服務沒有過高的要求 使用這個包還是不錯的 因為他本身就包含在JDK中 不
存在CLASSPATH的問題 不需要導入外部包 較為方便
ftp *;
這個包在Jakarta Commons Net library里 現在的最高版本是 可以從以下地址
下載
[url] net [/url]
zip
裡麵包含了打包好的jar API 及全部的class文件
[url] net [/url]
src zip
這里包含一些例子以及全部的代碼
給出一個該包的例子
import ftp *;
public static void getDataFiles( String server
String username
String password
String folder
String destinationFolder
Calendar start
Calendar end )
{
try
{
// Connect and logon to FTP Server
FTPClient ftp = new FTPClient();
nnect( server );
ftp login( username password );
System out println( Connected to +
server + );
System out print(ftp getReplyString());
// List the files in the directory
ftp changeWorkingDirectory( folder );
FTPFile[] files = ftp listFiles();
System out println( Number of files in dir: + files length );
DateFormat df = DateFormat getDateInstance( DateFormat SHORT );
for( int i= ; i
{
Date fileDate = files[ i ] getTimestamp() getTime();
if( pareTo( start getTime() ) >= &&
pareTo( end getTime() ) <= )
{
// Download a file from the FTP Server
System out print( df format( files[ i ] getTimestamp() getTime() ) );
System out println( + files[ i ] getName() );
File file = new File( destinationFolder +
File separator + files[ i ] getName() );
FileOutputStream fos = new FileOutputStream( file );
ftp retrieveFile( files[ i ] getName() fos );
fos close();
file setLastModified( fileDate getTime() );
}
}
// Logout from the FTP Server and disconnect
ftp logout();
ftp disconnect();
}
catch( Exception e )
{
e printStackTrace();
}
}
同 ftp相同 都是先建立FtpClient(注意兩包的大小寫不同)的實例 然後通過
connect()方法連接 login()方法登陸 但是 ftp *明顯比sun
net ftp功能強大很多
ftp *包將FTP中的file單獨出來成為了一個新類FTPFile 還有
類FTPFileEntryParser parse 沒有仔細研究 但是從字面來看應該是轉化為某種形勢的
類 有待研究
同時這個mons net jar包中也提供了FTP伺服器 telnet mail等一系列類庫
ftp *包的缺點在於需要設置classpath 並且需要下載jakarta
oro jar這個包才能運行(如果沒有這個包 會在ftp listFiles()方法後拋出找不
到class異常) 此包無須在代碼中import 只需設置在classpath中即可 下載地址
[url] oro zip[/url]
如果想要強大的FTP服務 那麼 ftp *包應該是你的最好選擇 而
且也是開源 免費的
這個包的問題是:
使用Jakarta Commons Net library需要在環境變數裡面編輯classpath
這是不方便的地方
lishixin/Article/program/Java/hx/201311/27057
⑸ ftp是什麼意思
FTP(FileTransferProtocol),是文件傳輸協議的簡稱。用於Internet上的控制文件的雙向傳輸。同時,它也是一個應用程序(Application)。用戶可以通過它把自己的PC機與世界各地所有運行FTP協議的伺服器相連,訪問伺服器上的大量程序和信息。
正如其名所示:FTP的主要作用,就是讓用戶連接上一個遠程計算機(這些計算機上運行著FTP伺服器程序)察看遠程計算機有哪些文件,然後把文件從遠程計算機上拷到本地計算機,或把本地計算機的文件送到遠程計算機去。需要進行遠程文件傳輸的計算機必須安裝和運行ftp客戶程序。
在windows操作系統的安裝過程中,通常都安裝了tcp/ip協早羨掘議軟體,其中就包含了ftp客戶程序。但是該程序是字元界面而不是圖形界面,這就必須以命令提示符的方式進行操作,很不方便。
文件傳輸協議(FileTransferProtocol,FTP)是用於在網路上進行陸核文件傳輸的一套標准協議,它工作在OSI模型的第七層,TCP模型的第四層,即應用層,使用TCP傳輸而不是UDP,客戶在和伺服器建立連接前要經過一個「三次握手」的過程,保證客戶與伺服器之間的連接是可靠的,而且是面向連接,為數據傳輸提供可靠保證。
FTP允許用戶以文件操作的方式(如文件的增、刪、改、查、傳送等)與另一主機相互通信。然而,用戶並不真正登錄派叢到自己想要存取的計算機上面而成為完全用戶,可用FTP程序訪問遠程資源,實現用戶往返傳輸文件、目錄管理以及訪問電子郵件等等,即使雙方計算機可能配有不同的操作系統和文件存儲方式。