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