1. 怎樣給FTP設置指定的用戶名訪問和目錄
在桌面上右擊「我的電腦」,執行「管理」命令,在「計算機管理」窗口的左窗格中依次展開「系統工具」→「本地用戶和組」目錄,單擊選中「用戶」選項。在右側窗格中單擊右鍵,執行「新用戶」命令。在打開的「新用戶」對話框中填寫用戶名(如hanjiang),並設定密碼。然後取消「用戶下次登錄時需更改密碼」復選框,並勾選「用戶不能更改密碼」和「密碼永不過期」復選框,單擊「創建」按鈕完成該用戶的添加。重復這一過程添加其他用戶,最後單擊「關閉」按鈕即可。
為方便對這些用戶的管理,最好將他們放入一個專門的組中。例如我們可以創建一個「FTPUsers」組:在「計算機管理」窗口的目錄樹中單擊選中「組」選項,然後在右側窗格中單擊右鍵,執行「新建組」命令,並將該組命名為「FTPUsers」。接著依次單擊「添加」→「高級」→「立即查找」按鈕,將剛才創建的用戶全部添加進來,最後依次單擊「創建」→「結束」按鈕。
然而事情並沒有完,因為上述創建的用戶默認隸屬於「Users」組,也就是說他們擁有對大部分資源的瀏覽許可權。為了實現對特定資源的有效管理,需要將這些用戶從「Users」組中刪除。在「計算機管理」窗口的右側窗格中雙擊「Users」選項,用滑鼠拖選所有剛添加的用戶並單擊「刪除」按鈕即可。 設置獨立許可權
這里的許可權設置需要分兩部分來進行,即對FTP伺服器主目錄的許可權設置和對各個用戶文件夾的許可權設置。假設FTP伺服器的主目錄路徑為「G:/FTPServer」,我們先來取消「FTPUsers」組的用戶對「FTPServer」文件夾的「寫入 」許可權。右擊「FTPServer」文件夾,執行「屬性」命令。在打開的「FTPServer 屬性」對話框中切換至「安全」選項卡下,然後依次單擊「添加」→「高級」→「立即查找」按鈕,單擊選中「FTPUsers」組並依次單擊「確定」按鈕回到「FTPServer 屬性」對話框。接著在「FTPUsers的許可權」列表框中勾選「拒絕寫入」復選框。為了使「拒絕寫入」許可權僅對「FTPServer」文件夾有效,還需要單擊「高級」按鈕,在「FTPServer的高級安全設置」對話框中雙擊「許可權列表」中的「拒絕FTPUsers寫入」選項,打開「FTPServer的許可權設置」對話框。在「應用到」下拉列表中選中「只有該文件夾」選項,連續單擊「確定」按鈕完成設置(如圖1)。
接著我們為每個用戶創建獨立的文件夾(以用戶名命名),並針對每個文件夾賦予相應用戶適當的許可權。以文件夾「hanjiang」為例,在「hanjiang 屬性」對話框的「安全」選項卡下將用戶「hanjiang」添加進來,並賦予其讀取和寫入的許可權。同理,對於其他文件夾,也只賦予相應用戶讀取和寫入的許可權。
小提示:需要受到許可權保護的文件夾必須在NTFS分區中創建,FAT32分區內的資源無法設置許可權。 至此,設置工作就全部結束了。在任意一台機器上以用戶「hanjiang」的身份登錄FTP伺服器,你會發現該用戶只能在「hanjiang」文件夾中任意讀寫,而無法看到主目錄和其他用戶目錄的內容。
2. 如何設置FTP伺服器
FTP伺服器的架設
在我們的實際網路生活中,特別是寬頻網接入之後,FTP伺服器作為文件的傳輸和共享工具得到廣泛應用。FTP伺服器在文件的傳輸上性能穩定,佔用系統資源小,而且傳輸速度快,現在網上已經有很多的FTP伺服器可供使用,而自己架設一個FTP伺服器也很容易,下面介紹兩種主流的FTP架構方式。
1.利用微軟公司的IIS
微軟的IIS功能非常強大,它除了提供WWW服務之外,還提供FTP的服務,利用它一樣很容易就能架設一個功能卓越的FTP伺服器。
IIS的安裝前面已經講解過,下面我們一起來看看通過設置IIS來架設FTP伺服器的幾個步驟。
第一步:啟動IIS,並啟動IIS上的FTP服務。在默認的情況下,此時你的FTP伺服器已經搭建好,並且可以立即登錄,但是該FTP中沒有任何文件。
第二步:滑鼠右擊IIS中的「默認FTP站點」項,選擇「屬性」菜單,即可出現如圖19的對話框。
第三步:選擇「主目錄」的標簽,在FTP站點目錄的「本地路徑」處填上你要設置的共享文件路徑。默認情況下,此處的文件夾位置為「C:\Inetpub\Ftproot」,你如果臨時想改變共享目錄,隨時都可在此處修改(如圖20),以後別人登錄你的FTP伺服器時顯示的文件列表就是在這個目錄中。
第三步:在「主目錄」的標簽處,你還可設置FTP伺服器的文件訪問許可權,分別有讀取、寫入和日誌訪問,安全起見,這里的寫入許可權一般不選,保證匿名用戶不能隨意對你文件進行操作。
第四步:設置登錄的用戶。如果你願意提供「匿名」的訪問許可權,還需在「安全標簽」處選擇上「允許匿名連接」(如圖21)。此外,你還可從Windows系統帳號中選擇FTP伺服器的特殊帳號,當然也可以自己任意設置用戶名和密碼。
第五步:在「消息」標簽處,有「歡迎」、「退出」和「最大連接數」3個輸入框,分別代表別人在登錄、退出時FTP伺服器上給出的提示信息,你可根據自己的需要設置。此外,最大連接數是設置同時連接本地FTP的最大主機台數(如圖22)。
第六步:在「FTP站點」的標簽處設置FTP標識,包括說明、IP地址和埠,這里一般不需要改動,按照默認選擇即可(如圖23)。此外,在「C:\Winnt\System32\Logfiles」目錄中你還可以看到連接上你FTP的IP、時間等日誌信息。
此時,利用IE或者任何一款FTP的客戶端軟體即可登錄你架設好的FTP站點。
2.利用Serv-U
在FTP伺服器的搭建中,Serv-U是目前使用比較多的工具之一。它設置簡單,功能強大,而且非常穩定,總體上來說上它比IIS附帶的FTP伺服器略勝一籌。它適用於所有的Windows版本,是一款共享軟體,可以讓用戶免費使用一個月。
第一步:Serv-U的下載和安裝。
目前Serv-U的最高版本為4.0,文件大小為2.9MB,它的下載站點之一為「http://www.download.com.cn/show.phtml?action=detail&id=484」。
點擊下載的可執行文件即可開始安裝了,安裝過程很簡單,所有設置保持默認值就可以,按「Next」完成每一步(如圖24)。安裝完畢,在Windows的桌面上就出現Serv-U的圖標,雙擊Serv-U圖標,出現Serv-U主窗口,點擊主界面右邊窗口的「Start server」即可啟動FTP伺服器 。
第二步:Serv-U的配置。
在Serv-U的安裝完成之後即可出現配置向導,可以通過這個向導來對它進行配置,主要步驟如下。
A.安裝程序首先啟動一個設置向導幫助你設置FTP伺服器,點擊「Next」繼續。
B.系統彈出輸入IP的對話框,此項需要填入你准備為此FTP伺服器綁定的IP地址。除非你的計算機有多個固定的IP地址,並且你只想其中一個被FTP伺服器所使用,否則,建議不管你是否有固定的IP地址,都將此項保留為空(即讓系統自動偵測),點擊「Next」(如圖25)。
C.輸入Domain name(域名)。此處填入你FTP伺服器的域名。但域名由DNS解析而不是由這里決定,因此實際上你可以填入任意內容,比如像「我的個人FTP伺服器」這種對此FTP進行說明的文字。
D.輸入FTP訪問的埠號,一般保持默認的21即可。
E.匿名用戶的創建和訪問目錄的設定。首先向導會提示你是否要創建匿名帳號,這里選擇是,如果選擇不,則用戶需要用戶名和密碼才能訪問FTP伺服器。接下來安裝向導提示輸入匿名用戶的主目錄(Anonymous home directory),此處按照需要來設定匿名用戶訪問硬碟的位置。
F.選擇匿名用戶是否將其限制在主目錄里,如果選擇是,則用戶只能訪問其主目錄及以下的目錄樹;如果選擇否,則可以訪問其主目錄的同級或更高級的目錄樹。從安全形度考慮,一般建議選是。
G.創建新用戶和訪問目錄。按照向導的提示一步一步創建新用戶並輸入密碼(如圖26),接著指定該用戶可訪問的目錄和用戶許可權即可。
到這里,你的個人FTP就已經搭建完成了。不過這還只能實現Serv-U賦予的默認功能和許可權,要真正讓這個伺服器能被你自己隨心所欲地控制和管理,則還需要經過以下後續的操作,這主要包括如下幾點。
A.對FTP用戶的管理
欲增加一個新用戶(包括增加Anonymous用戶),則在Serv-U的一個域中選中Users(用戶),然後單擊右鍵,進入New User(新用戶),依次根據提示為它設置好User Name(用戶名)、Password(密碼)、Home directory(主目錄)等即可完成(如圖27)。
欲刪除一個用戶,則在此用戶上單擊右鍵,選Delete User(刪除用戶)即可。
B.對目錄許可權的管理
在Serv-U左邊框架中選中用戶名,再在右邊框架中進入Dir Access(目錄存取)窗口,然後在列表中選中相應目錄後,就可在窗口的右側更改當前用戶對它的訪問許可權了(如圖28)。
文件的屬性主要包括:
Read(讀):對文件進行讀操作(復制、下載,不含查看)的權力。
Write(寫):對文件進行寫操作(上傳)的權力。
Append(附加):對文件進行寫操作和附加操作的權力。
Delete(刪除):對文件進行刪除(上傳、更名、刪除、移動)操作的權力。
Execute(執行):直接運行可執行文件的權力。
List(列表):對文件和目錄的查看權力。
Create(建立):建立目錄的權力。
Remove(移動):對目錄進行移動、刪除和更名的權力。
Inherit(繼承):如勾選中此項,則以上設置的屬性將對當前Path(目錄)及其下的整個目錄樹起作用;否則就只對其當前目錄有效。
C.其他設置
在Local server下的Setting處還可設置伺服器的一些通用信息。
在「max no.of users」處,設定同時登錄該伺服器的最大用戶數。
在Max.Speed處根據自己電腦的配置,設置用戶最大下載速度。
選擇「Block users who connect more than XX times within YY seconds for ZZ minutes」復選框並設置相應的數值,可以防止有些惡意用戶為達到攻擊目的在短時間內對該伺服器的頻繁登錄。
選擇「Delete partially uploaded files」復選框,可以自動刪除上傳失敗後留在伺服器上不完整文件。如果不要選中這項,就能讓Serv-U支持斷點上傳功能(如圖29)。
3.架設FTP伺服器的其他方式。
A.WS_FTP Server。這是一套非常有特色的FTP Server程序。它有簡單而強大的圖形介面。設置起來比較容易,可以在Win9X/NT/2000/XP系統下使用,是一個共享的英文軟體,文件大小為3.3MB,下載站點之一:http://www.skycn.com/soft/1296.html。
B.FileZilla Server。作為一個小巧、可*的FTP伺服器軟體,它配置簡單,功能比較強大,適合Windows系列中的所有版本,文件大小為637kB,同時它是完全免費的軟體,它的漢化版下載站點之一:http://www.skycn.com/soft/8091.html。
C.TYPSoft FTP Server漢化版。由於該軟體經過漢化,因此使用起來很容易上手,是一個非常適合初學者的FTP伺服器端軟體,它配置簡單,也能方便地管理用戶,軟體大小隻有480kB,是一款免費軟體,它的下載站點之一:http://www.skycn.com/soft/8335.html。
WWW伺服器和FTP的訪問途徑
WWW的訪問都可使用IE或其他瀏覽器來實現,例如我們經常看到的Natscape和Opera等。由於它的訪問很容易,這里就不再詳細討論。
FTP的訪問一般有兩種方式,介紹如下:
A.直接利用IE登錄FTP。現在我們正在使用的IE也可作為登錄FTP的工具了,跟瀏覽網頁一樣,只需要將地址前面的HTTP改為FTP即可,例如訪問自己的FTP,可以在瀏覽器中輸入ftp://localhost(如圖30),這時是匿名訪問方式,如果用IE登錄FTP時需用戶名和密碼,則可以右鍵調出登錄的菜單(如圖31),在對話框中輸入用戶名和密碼即可。IE登錄FTP伺服器之後,FTP伺服器上的文件跟本機上的文件一樣,可以對其進行復制和粘貼等操作。
B.利用專用的軟體登錄FTP。此類軟體有很多,比較著名的有FlashFXP、CuteFTP、LeapFTP等。
個人覺得LeapFTP很不錯,操作簡單,佔用資源也很小,它的用法分步介紹如下。
第一步:LeapFTP的下載與安裝。
目前LeapFTP較新的版本為2.7.2,是一個共享軟體,LeapFTP v2.7.2.592的漢化版可以去http://www.skycn.com/soft/711.html下載。它的安裝非常簡單,直接一路點擊「下一步」即可完成,安裝完成只有幾個配置文件和它自身一個獨立的程序,基本上是一個綠色軟體。
第二步:LeapFTP的使用。
A.打開LeapFTP,它的主界面如圖32。
B.添加FTP站點。點擊菜單上的「Sites」→「Site Manager」,(或直接按快捷鍵F4),彈出一個FTP站點的管理窗口。點擊「Add site」新建一個站點,在右邊的對話框中逐一輸入該站點的基本信息,例如伺服器名稱(可以任意填寫,主要是為了管理的方便)、伺服器地址、埠和用戶名等(如圖33),要登錄該FTP站,只需在左邊的窗口中雙擊該名稱即可。
C.取得FTP伺服器上的文件列表並按照需要上傳或下載。登錄上FTP之後,即可在LeapFTP的右上窗口中看到FTP上的文件列表,如果需要下載,將選中的文件拖入左邊的本地硬碟中某個目錄里(如圖34)即可。同樣,也可以用這種方法將硬碟中的文件上傳到FTP伺服器中去。
FTP伺服器的架設
在我們的實際網路生活中,特別是寬頻網接入之後,FTP伺服器作為文件的傳輸和共享工具得到廣泛應用。FTP伺服器在文件的傳輸上性能穩定,佔用系統資源小,而且傳輸速度快,現在網上已經有很多的FTP伺服器可供使用,而自己架設一個FTP伺服器也很容易,下面介紹兩種主流的FTP架構方式。
1.利用微軟公司的IIS
微軟的IIS功能非常強大,它除了提供WWW服務之外,還提供FTP的服務,利用它一樣很容易就能架設一個功能卓越的FTP伺服器。
IIS的安裝前面已經講解過,下面我們一起來看看通過設置IIS來架設FTP伺服器的幾個步驟。
第一步:啟動IIS,並啟動IIS上的FTP服務。在默認的情況下,此時你的FTP伺服器已經搭建好,並且可以立即登錄,但是該FTP中沒有任何文件。
第二步:滑鼠右擊IIS中的「默認FTP站點」項,選擇「屬性」菜單,即可出現如圖19的對話框。
第三步:選擇「主目錄」的標簽,在FTP站點目錄的「本地路徑」處填上你要設置的共享文件路徑。默認情況下,此處的文件夾位置為「C:\Inetpub\Ftproot」,你如果臨時想改變共享目錄,隨時都可在此處修改(如圖20),以後別人登錄你的FTP伺服器時顯示的文件列表就是在這個目錄中。
第三步:在「主目錄」的標簽處,你還可設置FTP伺服器的文件訪問許可權,分別有讀取、寫入和日誌訪問,安全起見,這里的寫入許可權一般不選,保證匿名用戶不能隨意對你文件進行操作。
第四步:設置登錄的用戶。如果你願意提供「匿名」的訪問許可權,還需在「安全標簽」處選擇上「允許匿名連接」(如圖21)。此外,你還可從Windows系統帳號中選擇FTP伺服器的特殊帳號,當然也可以自己任意設置用戶名和密碼。
第五步:在「消息」標簽處,有「歡迎」、「退出」和「最大連接數」3個輸入框,分別代表別人在登錄、退出時FTP伺服器上給出的提示信息,你可根據自己的需要設置。此外,最大連接數是設置同時連接本地FTP的最大主機台數(如圖22)。
第六步:在「FTP站點」的標簽處設置FTP標識,包括說明、IP地址和埠,這里一般不需要改動,按照默認選擇即可(如圖23)。此外,在「C:\Winnt\System32\Logfiles」目錄中你還可以看到連接上你FTP的IP、時間等日誌信息。
此時,利用IE或者任何一款FTP的客戶端軟體即可登錄你架設好的FTP站點。
2.利用Serv-U
在FTP伺服器的搭建中,Serv-U是目前使用比較多的工具之一。它設置簡單,功能強大,而且非常穩定,總體上來說上它比IIS附帶的FTP伺服器略勝一籌。它適用於所有的Windows版本,是一款共享軟體,可以讓用戶免費使用一個月。
第一步:Serv-U的下載和安裝。
目前Serv-U的最高版本為4.0,文件大小為2.9MB,它的下載站點之一為「http://www.download.com.cn/show.phtml?action=detail&id=484」。
點擊下載的可執行文件即可開始安裝了,安裝過程很簡單,所有設置保持默認值就可以,按「Next」完成每一步(如圖24)。安裝完畢,在Windows的桌面上就出現Serv-U的圖標,雙擊Serv-U圖標,出現Serv-U主窗口,點擊主界面右邊窗口的「Start server」即可啟動FTP伺服器 。
第二步:Serv-U的配置。
在Serv-U的安裝完成之後即可出現配置向導,可以通過這個向導來對它進行配置,主要步驟如下。
A.安裝程序首先啟動一個設置向導幫助你設置FTP伺服器,點擊「Next」繼續。
B.系統彈出輸入IP的對話框,此項需要填入你准備為此FTP伺服器綁定的IP地址。除非你的計算機有多個固定的IP地址,並且你只想其中一個被FTP伺服器所使用,否則,建議不管你是否有固定的IP地址,都將此項保留為空(即讓系統自動偵測),點擊「Next」(如圖25)。
C.輸入Domain name(域名)。此處填入你FTP伺服器的域名。但域名由DNS解析而不是由這里決定,因此實際上你可以填入任意內容,比如像「我的個人FTP伺服器」這種對此FTP進行說明的文字。
D.輸入FTP訪問的埠號,一般保持默認的21即可。
E.匿名用戶的創建和訪問目錄的設定。首先向導會提示你是否要創建匿名帳號,這里選擇是,如果選擇不,則用戶需要用戶名和密碼才能訪問FTP伺服器。接下來安裝向導提示輸入匿名用戶的主目錄(Anonymous home directory),此處按照需要來設定匿名用戶訪問硬碟的位置。
F.選擇匿名用戶是否將其限制在主目錄里,如果選擇是,則用戶只能訪問其主目錄及以下的目錄樹;如果選擇否,則可以訪問其主目錄的同級或更高級的目錄樹。從安全形度考慮,一般建議選是。
G.創建新用戶和訪問目錄。按照向導的提示一步一步創建新用戶並輸入密碼(如圖26),接著指定該用戶可訪問的目錄和用戶許可權即可。
到這里,你的個人FTP就已經搭建完成了。不過這還只能實現Serv-U賦予的默認功能和許可權,要真正讓這個伺服器能被你自己隨心所欲地控制和管理,則還需要經過以下後續的操作,這主要包括如下幾點。
A.對FTP用戶的管理
欲增加一個新用戶(包括增加Anonymous用戶),則在Serv-U的一個域中選中Users(用戶),然後單擊右鍵,進入New User(新用戶),依次根據提示為它設置好User Name(用戶名)、Password(密碼)、Home directory(主目錄)等即可完成(如圖27)。
欲刪除一個用戶,則在此用戶上單擊右鍵,選Delete User(刪除用戶)即可。
B.對目錄許可權的管理
在Serv-U左邊框架中選中用戶名,再在右邊框架中進入Dir Access(目錄存取)窗口,然後在列表中選中相應目錄後,就可在窗口的右側更改當前用戶對它的訪問許可權了(如圖28)。
文件的屬性主要包括:
Read(讀):對文件進行讀操作(復制、下載,不含查看)的權力。
Write(寫):對文件進行寫操作(上傳)的權力。
Append(附加):對文件進行寫操作和附加操作的權力。
Delete(刪除):對文件進行刪除(上傳、更名、刪除、移動)操作的權力。
Execute(執行):直接運行可執行文件的權力。
List(列表):對文件和目錄的查看權力。
Create(建立):建立目錄的權力。
Remove(移動):對目錄進行移動、刪除和更名的權力。
Inherit(繼承):如勾選中此項,則以上設置的屬性將對當前Path(目錄)及其下的整個目錄樹起作用;否則就只對其當前目錄有效。
C.其他設置
在Local server下的Setting處還可設置伺服器的一些通用信息。
在「max no.of users」處,設定同時登錄該伺服器的最大用戶數。
在Max.Speed處根據自己電腦的配置,設置用戶最大下載速度。
選擇「Block users who connect more than XX times within YY seconds for ZZ minutes」復選框並設置相應的數值,可以防止有些惡意用戶為達到攻擊目的在短時間內對該伺服器的頻繁登錄。
選擇「Delete partially uploaded files」復選框,可以自動刪除上傳失敗後留在伺服器上不完整文件。如果不要選中這項,就能讓Serv-U支持斷點上傳功能(如圖29)。
3.架設FTP伺服器的其他方式。
A.WS_FTP Server。這是一套非常有特色的FTP Server程序。它有簡單而強大的圖形介面。設置起來比較容易,可以在Win9X/NT/2000/XP系統下使用,是一個共享的英文軟體,文件大小為3.3MB,下載站點之一:http://www.skycn.com/soft/1296.html。
B.FileZilla Server。作為一個小巧、可*的FTP伺服器軟體,它配置簡單,功能比較強大,適合Windows系列中的所有版本,文件大小為637kB,同時它是完全免費的軟體,它的漢化版下載站點之一:http://www.skycn.com/soft/8091.html。
C.TYPSoft FTP Server漢化版。由於該軟體經過漢化,因此使用起來很容易上手,是一個非常適合初學者的FTP伺服器端軟體,它配置簡單,也能方便地管理用戶,軟體大小隻有480kB,是一款免費軟體,它的下載站點之一:http://www.skycn.com/soft/8335.html。
WWW伺服器和FTP的訪問途徑
WWW的訪問都可使用IE或其他瀏覽器來實現,例如我們經常看到的Natscape和Opera等。由於它的訪問很容易,這里就不再詳細討論。
FTP的訪問一般有兩種方式,介紹如下:
A.直接利用IE登錄FTP。現在我們正在使用的IE也可作為登錄FTP的工具了,跟瀏覽網頁一樣,只需要將地址前面的HTTP改為FTP即可,例如訪問自己的FTP,可以在瀏覽器中輸入ftp://localhost(如圖30),這時是匿名訪問方式,如果用IE登錄FTP時需用戶名和密碼,則可以右鍵調出登錄的菜單(如圖31),在對話框中輸入用戶名和密碼即可。IE登錄FTP伺服器之後,FTP伺服器上的文件跟本機上的文件一樣,可以對其進行復制和粘貼等操作。
B.利用專用的軟體登錄FTP。此類軟體有很多,比較著名的有FlashFXP、CuteFTP、LeapFTP等。
個人覺得LeapFTP很不錯,操作簡單,佔用資源也很小,它的用法分步介紹如下。
第一步:LeapFTP的下載與安裝。
目前LeapFTP較新的版本為2.7.2,是一個共享軟體,LeapFTP v2.7.2.592的漢化版可以去http://www.skycn.com/soft/711.html下載。它的安裝非常簡單,直接一路點擊「下一步」即可完成,安裝完成只有幾個配置文件和它自身一個獨立的程序,基本上是一個綠色軟體。
第二步:LeapFTP的使用。
A.打開LeapFTP,它的主界面如圖32。
B.添加FTP站點。點擊菜單上的「Sites」→「Site Manager」,(或直接按快捷鍵F4),彈出一個FTP站點的管理窗口。點擊「Add site」新建一個站點,在右邊的對話框中逐一輸入該站點的基本信息,例如伺服器名稱(可以任意填寫,主要是為了管理的方便)、伺服器地址、埠和用戶名等(如圖33),要登錄該FTP站,只需在左邊的窗口中雙擊該名稱即可。
C.取得FTP伺服器上的文件列表並按照需要上傳或下載。登錄上FTP之後,即可在LeapFTP的右上窗口中看到FTP上的文件列表,如果需要下載,將選中的文件拖入左邊的本地硬碟中某個目錄里(如圖34)即可。同樣,也可以用這種方法將硬碟中的文件上傳到FTP伺服器中去。
域名的申請和動態IP的解決措施
為了便於記憶,我們可以申請WWW伺服器和FTP伺服器地址的域名。
網易提供免費域名的申請,大家可以去http://my.yeah.net/apply-new.htm上免費獲得(如圖35),例如申請http://202.117.51.43對應的域名http://forus.yeah.net,這樣以後訪問自己的WWW服務就再也不需記住那些毫無意義的數字元號了。在瀏覽器中直接輸入自己申請的域名即可。此外,雅克精彩(http://www.k666.com/k666/yu-ming/apply.php)和My001.net網(http://www.my001.net)也都提供免費的WWW服務域名申請。
對FTP來說,域名的申請站點相對較少,這里推薦老牌的域名轉向免費服
3. FTP伺服器的架設(路由器埠設置怎麼設置啊)
路由器那邊只有設置ftp相應的IP 及ftp埠21就行了,就是在虛擬伺服器那邊設置就行了
4. win7 創建ftp 如何設置用戶名/密碼登錄
1.首先在C盤新建一個你要用於上傳的文件夾。如這里建立一個名叫ftp的文件夾。
5. FTP的幾種登錄訪問方式
當我們建立好FTP伺服器後,如何才能夠對伺服器的內容進行訪問,今天為大家講解一下FTP的幾種登錄訪問方式。6. ftp的路徑怎麼設置
問一下,你是想做ftp上傳下載么?
首先你需要安裝一個ftp服務端程序,啟動起來,然後下載一個ftp客戶端程序,測試能不能連接,首先這一塊兒需要測試通過。
代碼ftp上傳下載
2.1 上傳代碼:
import java.io.File;
import java.io.FileInputStream;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPReply;
public class test {
private FTPClient ftp;
/**
*
* @param path 上傳到ftp伺服器哪個路徑下
* @param addr 地址
* @param port 埠號
* @param username 用戶名
* @param password 密碼
* @return
* @throws Exception
*/
private boolean connect(String path,String addr,int port,String username,String password) throws Exception {
boolean result = false;
ftp = new FTPClient();
int reply;
ftp.connect(addr,port);
ftp.login(username,password);
ftp.setFileType(FTPClient.BINARY_FILE_TYPE);
reply = ftp.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
ftp.disconnect();
return result;
}
ftp.changeWorkingDirectory(path);
result = true;
return result;
}
/**
*
* @param file 上傳的文件或文件夾
* @throws Exception
*/
private void upload(File file) throws Exception{
if(file.isDirectory()){
ftp.makeDirectory(file.getName());
ftp.changeWorkingDirectory(file.getName());
String[] files = file.list();
for (int i = 0; i < files.length; i++) {
File file1 = new File(file.getPath()+"\\"+files[i] );
if(file1.isDirectory()){
upload(file1);
ftp.changeToParentDirectory();
}else{
File file2 = new File(file.getPath()+"\\"+files[i]);
FileInputStream input = new FileInputStream(file2);
ftp.storeFile(file2.getName(), input);
input.close();
}
}
}else{
File file2 = new File(file.getPath());
FileInputStream input = new FileInputStream(file2);
ftp.storeFile(file2.getName(), input);
input.close();
}
}
public static void main(String[] args) throws Exception{
test t = new test();
t.connect("", "localhost", 21, "yhh", "yhhazr");
File file = new File("e:\\uploadify");
t.upload(file);
}
}
2.2 下載代碼
這里沒有用到filter,如果用filter就可以過濾想要的文件。
public class Ftp {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Ftp ftp = new Ftp();
String hostname = "www.strawberry.com";
Integer port = 21;
String username = "username";
String password = "password";
String remote = "/c.txt";
String local = "/home/tin/LeonChen/FTP/";
try {
ftp.connect(hostname, port, username, password);
System.out.println("接收狀態:"+ftp.download(remote, local));
ftp.disconnect();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private FTPClient ftpClient = new FTPClient();
/*
* * 連接到FTP伺服器
* * @param hostname 主機名
* * @param port 埠
* * @param username 用戶名
* * @param password 密碼
* * @return 是否連接成功
* * @throws IOException
*/
private boolean connect(String hostname, int port, String username,
String password) throws IOException {
ftpClient.connect(hostname, port);
ftpClient.setControlEncoding("UTF-8");
if (FTPReply.isPositiveCompletion(ftpClient.getReplyCode())) {
if (ftpClient.login(username, password)) {
return true;
}
}
disconnect();
return false;
}
/*
* 從FTP伺服器上下載文件,支持斷點續傳,上傳百分比匯報
*
* @param remote 遠程文件路徑
*
* @param local 本地文件路徑
*
* @return 上傳的狀態
*
* @throws IOException
*/
public DownloadStatus download(String remote, String local)
throws IOException {
// 設置被動模式
ftpClient.enterLocalPassiveMode();
// 設置以二進制方式傳輸
ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
DownloadStatus result;
// 檢查遠程文件是否存在
FTPFile[] files = ftpClient.listFiles(new String(remote
.getBytes("UTF-8"), "iso-8859-1"));
if (files.length != 1) {
System.out.println("遠程文件不存在");
return DownloadStatus.Remote_File_Noexist;
}
long lRemoteSize = files[0].getSize();
String fildName = files[0].getName();
// 本地存在文件,進行斷點下載
File f = new File(local+fildName);
if (f.exists()) {
long localSize = f.length();
if (localSize >= lRemoteSize) {
System.out.println("本地文件大於遠程文件,下載中止");
return DownloadStatus.Local_Bigger_Remote;
}
// 進行斷點續傳,並記錄狀態
FileOutputStream out = new FileOutputStream(f, true);
ftpClient.setRestartOffset(localSize);
InputStream in = ftpClient.retrieveFileStream(new String(remote.getBytes("UTF-8"), "iso-8859-1"));
byte[] bytes = new byte[1024];
long step = lRemoteSize / 100;
long process = localSize / step;
int c;
while ((c = in.read(bytes)) != -1) {
out.write(bytes, 0, c);
localSize += c;
long nowProcess = localSize / step;
if (nowProcess > process) {
process = nowProcess;
if (process % 10 == 0)
System.out.println("下載進度:" + process);
// TODO 更新文件下載進度,值存放在process變數中
}
}
in.close();
out.close();
boolean isDo = ftpClient.completePendingCommand();
if (isDo) {
result = DownloadStatus.Download_From_Break_Success;
} else {
result = DownloadStatus.Download_From_Break_Failed;
}
} else {
OutputStream out = new FileOutputStream(f);
InputStream in = ftpClient.retrieveFileStream(new String(remote.getBytes("UTF-8"), "iso-8859-1"));
byte[] bytes = new byte[1024];
long step = lRemoteSize / 100;
long process = 0;
long localSize = 0L;
int c;
while ((c = in.read(bytes)) != -1) {
out.write(bytes, 0, c);
localSize += c;
long nowProcess = localSize / step;
if (nowProcess > process) {
process = nowProcess;
if (process % 10 == 0)
System.out.println("下載進度:" + process);
// TODO 更新文件下載進度,值存放在process變數中
}
}
in.close();
out.close();
boolean upNewStatus = ftpClient.completePendingCommand();
if (upNewStatus) {
result = DownloadStatus.Download_New_Success;
} else {
result = DownloadStatus.Download_New_Failed;
}
}
return result;
}
private void disconnect() throws IOException {
if (ftpClient.isConnected()) {
ftpClient.disconnect();
}
}
}