當前位置:首頁 » 文件管理 » vbftp上傳

vbftp上傳

發布時間: 2022-05-09 04:55:00

Ⅰ 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->

Ⅱ 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

Ⅲ vb.net ftp上傳文件

Dim OpenFileDialog As New OpenFileDialog
OpenFileDialog.InitialDirectory = My.Computer.FileSystem.SpecialDirectories.MyDocuments
OpenFileDialog.Filter = "文本文件(*.jpg)|*.jpg|所有文件(*.*)|*.*"
If (OpenFileDialog.ShowDialog(Me) = System.Windows.Forms.DialogResult.OK) Then
Dim FileName As String = OpenFileDialog.FileName
' TODO: 在此處添加打開文件的代碼。
textbox1.Text = FileName
End If
第一個按鈕 上傳

Dim filelast As String = fileaddbefore.Text.Substring(fileaddbefore.Text.LastIndexOf("."), fileaddbefore.Text.Length - fileaddbefore.Text.LastIndexOf("."))
MessageBox.Show(filelast)
My.Computer.Network.UploadFile(textbox1.Text, "ftp://XXX/" & 文件名.Text & filelast, "登錄名1", "登錄密碼", True, 100)
第二個按鈕

Ⅳ VB上傳文件到FTP空間的代碼

首先,在VB工具欄中添加部件Microsoft Internet Transfer Control 6.0 ,之後工具箱會多一個Inet的控制項。拖放該控制項到窗體上,設置控制項中的屬性 protocol : 2-icFTP
RemoteHost : 你的FTP服務IP或域名
RemotePort : 你的FTP埠
URL : 你的FTPURL地址
UserName和Password 這兩個就不用說了當然,也可以在運行時綁定屬性。本例中還需要拖放一個文本筐(txtData)和一個按鈕(Command1)窗體代碼部分如下:Private Sub Command1_Click() Dim isRight As Boolean '定義一個BOOLEAN變數,用於判斷是否仍然在執行上傳 Dim filestr As String '定義一個字元串變數,用於存儲本地文件的路徑和文件名,並在後面賦值,當然,正式使用的時候這里是由用戶選擇文件的路徑 filestr = "d:\ctrpatch1229-0829.exe" '調用Inet的execute方法上傳文件,第一參數是FTP URL地址,第2個參數是傳遞參數,字元串型,分為3個部分: 方法+本地文件+上傳後文件名 ,FTP上傳使用 PUT 命令 Inet1.Execute " ftp://192.168.1.17", "PUT " & filestr & " uploadedfilename.exe" 'put,本地文件路徑,上傳後的文件名稱之間一定要有空格隔開 isRight = Inet1.StillExecuting '獲取當前是否仍然在執行命令 '循環檢查是否仍然在命令執行,如果仍然還在執行命令,那麼將控制權交給系統,這樣系統可以分配空閑的處理時間來執行命令 Do While isRight isRight = Inet1.StillExecuting DoEvents Loop End Sub '在調用Inet的Execute方法時會觸發該時間,該事件傳遞一個參數State來返回當前執行狀態 '返回的狀態值如下: '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 在與主機通信的過程中發生了錯誤icResponseComp leted '12 請求結束且數據已經接收到 Private Sub Inet1_StateChanged(ByVal State As Integer) '獲取並顯示一下當前的執行狀態,方便測試 txtData.Text = txtData.Text + CStr(State) '檢查當前返回的狀態值 Select Case State '如果是12,說明執行完成 Case 12 '以下=號中間的代碼我暫時還不知道具體有什麼在作用 '============================================== Dim vtData As Variant ' Data variable. Dim strData As String: strData = "" Dim bDone As Boolean: bDone = False ' Get first chunk. vtData = Inet1.GetChunk(1024, icString) Do While Not bDone strData = Data & vtData ' Get next chunk. vtData = Inet1.GetChunk(1024, icString) If Len(vtData) = 0 Then bDone = True End If Loop txtData.Text = strData '=============================================== txtData.Text = "上傳完成" End Select End Sub

Ⅳ vb編寫ftp 能上傳下載文件

1、利用Inet控制項上傳文件

格式:inet1.execute , "put 本地文件 遠程文件"

範例:

'初始化Inet控制項
Inet1.Protocol = icFTP
Inet1.URL = "ftp://u0501901.k1.13939.org"
Inet1.RemotePort = 21
Inet1.UserName = "u0501901"
Inet1.Password = "750531179574"

Label3.Caption = "正在上傳....."

'先關閉當前的資料庫存連接
cn.Close

Inet1.Execute , "put" & " " & App.Path & "\vbhelp.mdb" & " " & "/vbhelp/vbhelp.mdb"

Do While Inet1.StillExecuting
DoEvents
Loop
Label3.Caption = "上傳成功"

'重新連接資料庫
dbconnect

2、利用Inet控制項下載文件

格式: inet1.execute , "get 遠程文件 本地文件",注意空格

'初始化INET1控制項
Inet1.Protocol = icFTP
Inet1.URL = "ftp://u0501901.k1.13939.org"
Inet1.RemotePort = 21
Inet1.UserName = "u0501901"
Inet1.Password = "750531179574"

Label3.Caption = "正在下載...."

'格式: inet1.execute , "get 遠程文件 本地文件",注意空格
Inet1.Cancel
Inet1.Execute , "GET /vbhelp/vbhelp.mdb c:\temp\vbhelp.mdb"
Do While Inet1.StillExecuting
DoEvents
Loop

label3.caption="下載成功"

3、利用INET控制項建立遠程的文件夾

Inet1.AccessType = icUseDefault
Inet1.RemotePort = 21
Inet1.Protocol = icFTP
Inet1.URL = "u0711084.k1.13939.org"
Inet1.UserName = "u0711084"
Inet1.Password = "750531179574"

Inet1.Execute , "mkdir vbtest"
Do While Inet1.StillExecuting
DoEvents
Loop

Inet1.Execute , "close"
Inet1.Execute , "quit"
MsgBox "成功建立文件夾"

4、利用INET控制項刪除遠程文件夾

方法跟建立文件夾一樣,刪除命令為rmdir,但只能刪除空目錄,刪除文件用delete

Ⅵ vb 上傳文件到指定ftp伺服器

採用ezftp控制項
FTP.RemoteAddress = 地址
FTP.UserName = 用戶名
FTP.Password = 密碼
FTP.Connect

FTP.LocalFile = 文件本地地址
FTP.RemoteFile = ftp上的地址
On Error Resume Next
FTP.PutFile
If Err <> 0 Then
MsgBox "未能連接到遠程伺服器,請檢測網路", vbExclamation, "注意"
Exit Sub
End If
MsgBox "上傳成功", , "成功!"
FTP.Disconnect

Ⅶ 如何用VB寫個程序,把指定文件上傳到FTP空間

用Inet控制項吧,他可以幫助你完成你想實現的功能。
設置信息:
Inet1.Protocol = icFTP
Inet1.RemoteHost = ServerName'伺服器地址
Inet1.RemotePort = 21'FTP埠
Inet1.UserName = uName'用戶名
Inet1.Password = uPWS'密碼

下載文件:
Inet1.Execute "", "GET 1.txt d:\1.txt"
ri = Inet1.StillExecuting
Do While ri
ri = Inet1.StillExecuting
DoEvents
Loop
上傳文件:
Inet1.Execute "", "PUT d:\1.txt 1.txt"
ri = Inet1.StillExecuting
Do While ri
ri = Inet1.StillExecuting
DoEvents
Loop

Ⅷ 用vb如何判斷FTP文件是否上傳完畢

用api就判斷下文件大小,
如果用winsock,1可以聽過自定義消息判斷大小,crc什麼的,2可以通過每部分數據是否都傳送成功

熱點內容
java跳出多重循環 發布:2024-11-18 22:52:28 瀏覽:56
傳奇私服登錄腳本 發布:2024-11-18 22:47:54 瀏覽:877
雲伺服器還用買電腦嗎 發布:2024-11-18 22:42:44 瀏覽:666
演算法開關門 發布:2024-11-18 22:37:09 瀏覽:477
u啟動iso解壓 發布:2024-11-18 22:22:03 瀏覽:885
oracle存儲過程rollback 發布:2024-11-18 22:14:05 瀏覽:672
c語言學生管理系統課程設計 發布:2024-11-18 22:13:15 瀏覽:604
怎麼在雲伺服器上掛機手機游戲 發布:2024-11-18 22:03:03 瀏覽:317
ppp撥號伺服器搭建 發布:2024-11-18 22:02:59 瀏覽:586
幻靈游俠腳本 發布:2024-11-18 21:57:39 瀏覽:457