ftp上傳vb
首先介紹ftp下載,代碼如下: Const Str_FtpServer As String = " ftp://ftp.lob.cn" Private Str_Username As String = "lob" Private Str_Password As String = "xxxxxxxx" Private Sub DownloadFile(ByVal Str_Path As String) Try Dim Str_Filename As String = Str_Path Dim ftpReq As FtpWebRequest = WebRequest.Create(Str_Filename) ftpReq.Method = WebRequestMethods.Ftp.DownloadFile ftpReq.Credentials = New NetworkCredential(Str_Username, Str_Password) Dim FTPResp As FtpWebResponse = ftpReq.GetResponse Dim ftpRespStream As Stream = FTPResp.GetResponseStream 'FTPResp.StatusDescription 為回顯狀態的描述 可用於調試 ftpRespStream.Save("d:\lobdotcn.rar") '保存到本地的路徑,如果你樂意也可以直接定義到參數中 FTPResp.Close() Catch ex As Exception MsgBox(ex.Message) End Try End Sub 調用方式:DownloadImage(Str_FtpServer& "/logo.jpg")==============================================================你先看看是你想要的不?是的話再往下看從這里過來的: http://blog.chinaunix.net/u/22170/showart_475726.html 呵呵我是做C#的,但是看你這分數實在太誘人,就幫你找了找~
記得採納啊
B. VB鎵句竴孌礔TP浠g爜瀹炵幇
鐢╒B浠g爜瀹炵幇瀵笷TP鐨勪笂浼犲拰涓嬭澆.鍦ㄧ綉涓婃壘鍒頒簡涓鏂規硶.
榪欎釜鏂規硶鏄鐢↖NTERNET浼犺緭鎺т歡鏉ュ疄鐜扮殑.
娣誨姞浜咺NTERNET浼犺緭鎺т歡鍚嶸B浠g爜濡備笅"
'鍒濆嬪寲鎺т歡鐨勫睘鎬:
With Inet1
.URL = "ftp://192.168.0.50"
.UserName = "user"
.Password = "123"
.Protocol = icFTP
.RequestTimeout = 120
End With
,鍦‵TP鏍圭洰褰曚笅鍒涘緩鏂囦歡澶筧bc
Call Inet1.Execute(, "mkdir abc")
,鍦‵TP鏍圭洰褰曚笅杞123.txt鍒癉鐩
Call Inet1.Execute(, "get 123.txt d:\123.txt")
'鎶奷:\123.txt涓婁紶鍒癋TP鏍圭洰褰
Call Inet1.Execute(, "put d:\123.txt 123.txt")
'鎶奷:\123.txt涓婁紶鍒癋TP鏍圭洰褰
Call Inet1.Execute(, "send d:\123.bmp")
C. VB編寫個程序上傳文件到FTP
首先,在VB工具欄中添加部件Microsoft Internet Transfer Control 6.0 ,之後工具箱會多一個Inet的控制項。
拖放該控制項到窗體上,設置控制項中的屬性
protocol : 2-icFTP
RemoteHost : 你的FTP服務IP或域名
RemotePort : 你的FTP埠
URL : 你的FTPURL地址
UserName和Password 這兩個就不用說了
'窗體中添加一個文本框(text1)和一個按鈕(Command1)代碼如下:
Private Sub Command1_Click()
Dim isRight As Boolean
Dim filestr As String
filestr = app.path & "\A"
Inet1.Execute "", "PUT " & filestr & " /A"
isRight = Inet1.StillExecuting '獲取當前是否仍然在執行命令
Do While isRight
isRight = Inet1.StillExecuting
DoEvents
Loop
filestr = app.path & "\B"
Inet1.Execute "", "PUT " & filestr & " /B"
isRight = Inet1.StillExecuting '獲取當前是否仍然在執行命令
Do While isRight
isRight = Inet1.StillExecuting
DoEvents
Loop
filestr = app.path & "\C"
Inet1.Execute "", "PUT " & filestr & " /C"
isRight = Inet1.StillExecuting '獲取當前是否仍然在執行命令
Do While isRight
isRight = Inet1.StillExecuting
DoEvents
Loop
filestr = app.path & "\D"
Inet1.Execute "", "PUT " & filestr & " /a/D"
isRight = Inet1.StillExecuting '獲取當前是否仍然在執行命令
Do While isRight
isRight = Inet1.StillExecuting
DoEvents
Loop
End Sub
Private Sub Inet1_StateChanged(ByVal State As Integer)
text1.Text = text1.Text + CStr(State)
Select Case State
Case 11
text1.text ="在與主機通信的過程中發生了錯誤"
Case 12
text1.Text = "上傳完成"
End Select
End Sub
D. vb如何上傳文件到指定ftp
最簡單的方法是用ftp批處理,代碼如下
open app.path & "\ftpcmd.ftp" for output as #1 '創建一個ftp命令文件
print #1, "open " & "IP" '打開ftp伺服器
print #1, "user " & "用戶名"
print #1, "pass " & "密碼"
print #1, "lcd " & "本地文件路徑" '指定本地文件所在目錄
print #1, "put " & "文件名"
close #1 'frp命令文件寫完了
shell "ftp -n -s:" & app.path & "\ftpcmd.ftp" '調用系統ftp,並執行上面寫的ftpcmd.ftp
E. VB做ftp上傳工具
在VB中實現文件上傳
VisualBasic作為一個集應用程序開發、測試、查錯功能於一體的集成式開發環境,越來越受到程序員的青睞。筆者在開發某資料庫維護系統的過程中,選擇了VB5.0作為開發平台,Unix作為伺服器端操作系統,Informix作為伺服器資料庫。
問題的出現
在開發該維護系統的過程中,注意到Informix資料庫的欄位類型CLOB填入數據時需要函數FILETOCLOB("FILENAME","SERVER"),其中的"FILENAME"需要指出文件路徑和文件名稱。然而,在維護過程中此文件是在客戶端執行的,這樣就要求即時將文件傳輸到伺服器端。
解決辦法
1.FTP傳輸工具
我們首先使用FTP傳輸工具,用VB5.0中SHELL命令調用DOS批處理文件來實現傳輸的需要。
Shell調用格式:
Shell(pathname[,windowstyle])
例子:Shell("c:\windows\upload.bat")
批處理文件upload.bat的內容:
c:\windows\ftphostname
username
password
sendc:\zrh\upload.txtupload.txt
bye
該命令實現了文件"upload.txt"的傳輸要求。在使用完畢之後,再調用命令把該文件刪除。
例子:Shell("c:\windows\del_up.bat")
批處理文件del_up.bat的內容:
c:\windows\ftphostname
username
password
deleupload.txt
bye
這樣,文件"upload.txt"被刪除。
但是,另一個問題出現了。由於Shell函數的運行機制是與其它程序同步執行,也就是說,當調用Shell函數的子程序還沒有執行完畢之前,Shell函數後面的語句已經執行。在大批量添加數據的過程中,就會出現某個記錄的文件還沒有傳到,而下一個插入語句(Insert)已經開始調用。這樣,ODBC調用就會出現錯誤。
2.INET控制項
InternetTransfer控制項提供了Internet上最常使用的兩種協議:HTTP和FTP。使用HTTP協議可以連接到WWW伺服器上來下載文件;使用FTP協議則可以登錄到FTP伺服器。一般的FTP命令,例如CD、GET都可以通過Execute方法實現。
下面是一個設置INET控制項屬性的例子。
inet1.URL=ftp://username:password@hostname/document
inet1.Protocol=2-icFTP
inet1.RemoteHost=hostname
inet1.RemotePort=21
inet1.Username=username
inet1.Password=password
執行文件傳輸:
Inet1.Execute"ftp://username:password@hostname",_
"PUT"&local_filename&"UPLOAD1.TXT"
right1=Inet1.StillExecuting
DoWhileright1
right1=Inet1.StillExecuting
DoEvents
Loop
這樣便實現了文件的上載。
*SINET控制項的優點
INET控制項與Shell()函數的不同之處在於INET控制項通過調用語句
right1=Inet1.StillExecuting
DoWhileright1
right1=Inet1.StillExecuting
DoEvents
Loop來控制語句執行的順序。在文件傳輸工作未完成之前,程序不會執行其它語句,自然也就不會出現調用Shell函數所出現的問題。變數right1用來測試inet1的執行狀態,如果進程中仍在進行文件傳輸的工作,則調用過程DoEvents給系統空閑時間來做文件傳輸工作,這樣便成功地執行了文件上載的功能。該文件使用完畢之後將被刪除。
Inet1.Execute"ftp://informix:informix@rd",_
"DELETEUPLOAD1.TXT"
right1=Inet1.StillExecuting
DoWhileright1
right1=Inet1.StillExecuting
DoEvents
Loop
將上載的文件刪除是為了避免佔用伺服器端磁碟空間。
*S利用StateChanged事件提示信息
伺服器在執行inet1.execute的同時也激活了Inet1_StateChanged事件,進程可以根據捕獲到的狀態進行動作。
object_StateChanged(ByValStateAsInteger)
State:整數類型Integer
下面是狀態的說明。
常數值 描述icNone
0 未報告狀態icHostResolvingHost
1 控制項正在尋找指定主機的IP地址icHostResolved
2 控制項已成功找到指定主機的IP地址icConnecting
3 控制項正在與指定主機進行連接icConnected
4 控制項已成功與指定主機連接icRequesting
5 控制項正在向主機發出請求icRequestSent
6 控制項已成功向主機發出請求icReceivingResponse
7 控制項正在從主機接收反饋信息icResponseReceived
8 控制項已成功從主機接受反饋信息icDisconnecting
9 控制項正在與主機斷開icDisconnected
10 控制項已與主機斷開icError
11 在與主機通信的過程中發生了錯誤icResponseCompleted
12 請求結束且數據已經接收到
下面是一個例子。
PrivateSubInet1_StateChanged(ByValStateAsInteger)
'
'methodwhenState=12.Thisexampleassumesthe
'dataistext.
SelectCaseState
'...Othercasesnotshown.
CaseicResponseReceived'12
DimvtDataAsVariant'Datavariable.
DimstrDataAsString:strData=""
DimbDoneAsBoolean:bDone=False
'Getfirstchunk.
vtData=Inet1.GetChunk(1024,icString)
DoWhileNotbDone
strData=Data&vtData
'Getnextchunk.
vtData=Inet1.GetChunk(1024,icString)
IfLen(vtData)=0Then
bDone=True
EndIf
Loop
txtData.Text=strData
EndSelect
EndSub->
F. VB6.0實現FTP上傳
PrivateSubCommand1_Click()
Inet1.URL=""'你的FTP的IP
Inet1.Protocol=2
Inet1.UserName=""'你的FTP登錄用戶名
Inet1.Password=""'你的FTP登錄密碼
Inet1.Execute,"PUT"&"c:1.txt"&"1.txt"
DoWhileInet1.StillExecuting
DoEvents
Loop
MsgBox"OK啦!",vbInformation,"提示"
EndSub