当前位置:首页 » 文件管理 » 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可以通过每部分数据是否都传送成功

热点内容
云服务器还用买电脑吗 发布: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
node加密 发布:2024-11-18 21:56:13 浏览:978
养女ftp 发布:2024-11-18 21:56:02 浏览:818