用asp.net上傳文件時(shí),對(duì)大文件的處理總會(huì)不盡于人意,雖然從理論上講,可以傳輸很大的文件(100M以上),但在實(shí)際使用中會(huì)出現(xiàn)各種問(wèn)題.因此,基于B/S架構(gòu)的大文件上傳還是用FTP為好。
用FTP手工上傳文件沒(méi)有什么可以說(shuō)的,但我們往往需要通過(guò)程序來(lái)控制這一過(guò)程,即通過(guò)asp.net來(lái)實(shí)現(xiàn)這一目的.如果FTP軟件具備可二次開(kāi)發(fā)的接口就好了.經(jīng)典的cuteftp pro就具有這樣的功能。
安裝完cuteftp pro 7后,會(huì)生成一個(gè)文件叫ftpte(FTP傳輸引擎),ftpte提供了很多屬性和方法,能夠方便地通過(guò)編程來(lái)實(shí)現(xiàn)大文件的上傳,包括文件過(guò)濾、目錄和文件檢測(cè)、文件刪除、改名、傳輸啟動(dòng)和停止以及狀態(tài)查看等等。
下面是實(shí)例:
連接FTP服務(wù)器:
Set MySite = CreateObject("CuteFTPPro.TEConnection")
MySite.Protocol = "FTP"
MySite.Host = "ftp.cuteftp.net"
MySite.Login = "username"
MySite.Password = "password"
MySite.Connect
上傳文件:
Set MySite = CreateObject("CuteFTPPro.TEConnection")
‘Specify user, pass, host, and connect as normal...
MySite.Connect ‘Recommended: call connect first
MySite.RemoteFolder = "Temp"
MySite.LocalFolder = "C:\123"
‘using relative path, all files in folder 123 are uploaded to the folder Temp off the current folder on the server.
MySite.Upload "*.*"
下載文件:
Set MySite = CreateObject("CuteFTPPro.TEConnection")
‘Specify user, pass, host, and connect as normal...
MySite.Connect ‘Recommended: call connect first
‘next line changes to a predetermined folder so you can use a relative path in the download method
MySite.RemoteFolder = "/c:/Inetpub/ftproot/Temp/Temp/"
MsgBox (MySite.RemoteFolder) 'display current remote folder
MySite.Download "agent.ini", "c:\temp\agent1.ini"
'now verify downloaded ok
If CBool(MySite.LocalExists ("c:\temp\agent1.ini")) Then
MsgBox "File downloaded OK."
End If
從實(shí)驗(yàn)的情況看,ftpte在C/S模式下能很好的支持各項(xiàng)功能,在B/S模式下會(huì)找不到組件,可能與沒(méi)有注冊(cè)有關(guān)。
通過(guò)利用ftpte,可能編程實(shí)現(xiàn)遠(yuǎn)程文件定時(shí)或不定時(shí)同步等諸多功能,從而實(shí)現(xiàn)非手工方式的文件傳輸。
出處:記憶減退
責(zé)任編輯:moby
◎進(jìn)入論壇網(wǎng)絡(luò)編程版塊參加討論
|