利用VB实现FTP基本功能
VB实现SFTP下载和上传的功能
VB实现SFTP下载和上传的功能背景 因为安全原因,需要SFTP协议(sftp是Secure File Transfer Protocol的缩写,安全。
可以为传输⽂件提供⼀种安全的加密⽅法。
sftp 与ftp 有着⼏乎⼀样的语法和功能。
SFTP 为的⼀部份,是⼀种传输档案⾄ Blogger 伺服器的安全⽅式。
其实在SSH软件包中,已经包含了⼀个叫作SFTP(Secure File Transfer Protocol)的安全⽂件传输⼦系统,SFTP本⾝没有单独的,它必须使⽤sshd守护进程(号默认是22)来完成相应的连接操作,所以从某种意义上来说,SFTP并不像⼀个程序,⽽更像是⼀个客户端程序。
SFTP同样是使⽤加密传输认证信息和传输的数据,所以,使⽤SFTP是⾮常安全的。
但是,由于这种传输⽅式使⽤了加密/,所以⽐普通的要低得多,如果您对⽹络安全性要求更⾼时,可以使⽤SFTP代替FTP)准备阶段 需要引⽤第三⽅类库Tamir.SharpSSH.dll。
链接地址()我下载的是(Download binaries: )⽂件 把Tamir.SharpSSH.dll加载到项⽬中。
实现阶段 增加⼀个类SFTPHelper1Imports Tamir.SharpSsh.jsch23Public Class SFTPHelper4Private m_session As Session5Private m_channel As Channel6Private m_sftp As ChannelSftp78Public Sub New(ByVal host As String, ByVal user As String, ByVal pwd As String)9Dim arr() As String = host.Split(":")10Dim ip As String = arr(0)11Dim port As Integer = 2212If (arr.Length > 1) Then13 port = Int32.Parse(arr(1))14End If1516Dim jsch As JSch = New JSch()17 m_session = jsch.getSession(user, ip, port)18Dim ui As MyUserInfo = New MyUserInfo()19 ui.setPassword(pwd)20 m_session.setUserInfo(ui)21End Sub2223'SFTP获取⽂件24Public Function GetInfo(ByVal remotePath As String, ByVal localPath As String) As Boolean25Try26Dim src As Tamir.SharpSsh.java.String = New Tamir.SharpSsh.java.String(remotePath)27Dim dst As Tamir.SharpSsh.java.String = New Tamir.SharpSsh.java.String(localPath)28 m_sftp.get(src, dst)29Return True30Catch31Return False32End Try33End Function34'SFTP连接状态35Public Property Connected As Boolean36Get37Return m_session.isConnected()38End Get39Set(ByVal value As Boolean)4041End Set42End Property4344'连接SFTP45Public Function Connect() As Boolean46Dim flag As Boolean = False47Try48If (Not Connected()) Then49 m_session.connect()50 m_channel = m_session.openChannel("sftp")51 m_channel.connect()52 m_sftp = m_channel53 flag = True54End If55Catch56 flag = False57End Try58Return flag59End Function6061'断开SFTP62Public Sub Disconnect()6364If (Connected()) Then65 m_channel.disconnect()66 m_session.disconnect()67End If68End Sub6970'登录验证信息71Public Class MyUserInfo72Implements UserInfo7374Dim passwd As String7576Public Sub setPassword(ByVal ppasswd As String)77 passwd = ppasswd78End Sub79Public Function getPassphrase() As String Implements erInfo.getPassphrase80Return Nothing81End Function82Public Function getPassword() As String Implements erInfo.getPassword83Return passwd84End Function8586Public Function promptPassphrase(ByVal message As String) As Boolean Implements erInfo.promptPassphrase87Return True88End Function89Public Function promptPassword(ByVal message As String) As Boolean Implements erInfo.promptPassword90Return True91End Function92Public Function promptYesNo(ByVal message As String) As Boolean Implements erInfo.promptYesNo93Return True94End Function95Public Sub showMessage(ByVal message As String) Implements erInfo.showMessage9697End Sub98End Class99100End Class 这⾥我只实现了下载的功能,上传的功能修改后加上。
在VB中通过API函数实现FTP功能
一
B V l is Dr c oy A t i )A o la ya p zi e tr sS r n s B oe n g
’ 把文件上传到 FP 服务器上 T
’
D t玎一包禽要到达的 目 i 0 1 录名.可以是相对的或绝对的路径。
P ia e D c a e F n t o tP t ie L b w n n t d l A / s r v t e lr u c i n F pu F l i i ie . l 1 a F p uF l A tP t ie
B V ld C ne tA o g A o la ya  ̄o t x s Ln ) s Bo en
’
一
lFr ie t s耵 鹇 2F m ^^ pi 心 l啮 aA - I n T,
d F as A w lg s 噶
一
s Lc F l ̄ z oali e-要 发 送 的 文件 名
C n tF L TR B I O ES D=& 8o’ o s I EA T IIE C ̄R S E / H 0 被压缩的文件和 目录
C n t F L T R B T ( ZI E =  ̄{O 0 o s IE A T IU E  ̄ N Jl 0
_
0 a F pe s o s Ln , vl h tS s in A og
’ ̄o t x - 要取回的文件的描述表标识符 d net ’ 下载 文件
’ w l g 一 数据 传输的方式 ,通常 设置为 0 A C 方式 ) dFa s ,(S I I
’ 续由F p i d i s F l )函数发起的文件搜索操作 继 t F n F r t i e(
P ia e D ca eF c i ̄ It re F n e t ieL b w nn t rv t e lr a to n en t i ̄ x F l i ii e. n
VB开发的FTP上传文件
公司里有个VB开发的软件要做个ftp上传文件功能,基本实现方法如下:1、inet控件添加:打开VB,新建一个工程,新建一个窗体Form1,点击VB6.0上面的工程-部件-控件-选择“Microsoft Internet Transfer 6.0 (SP4)”-应用-确定;这样,把inet控件添加到了左侧的工具栏2、界面控件添加:在FORM1窗体中添加4个控件(1)iinet1 (这个就是刚添加的inet控件)(2)Command1(3)label3(4)text13、建文件目录:FTP目录:ftp://192.192.0.35用户名:ftpID 密码:ftpPWD本地要上传的文件目录:D:\Vbinet(向D:\Vbinet目录下添加文件DD.txt用于测试)4、代码:Option ExplicitPrivate Sub Command1_Click()Dim filename, putfile As String'设置FTP的地址、协议类型、用户名、密码Inet1.URL = "ftp://192.192.0.35" 'FTP的地址Inet1.Protocol = icFTP'协议类型erName = "ftpID" 'FTP的用户名Inet1.Password = "ftpPWD" 'FTP的密码'以下是同一文件夹下多文件上传'(把D:\VBinet文件夹下的所有txt文件上传到ftp://192.192.0.35的receive目录下)filename = Dir("D:\VBinet\*.txt")' If filename <> "" ThenDo While filename <> ""Text1.Text = filename & vbCrLf & Text1.Textputfile = "put D:\VBinet\" & filename & " " & "receive\" & filenameInet1.Execute , putfileDo While Inet1.StillExecutingDoEventsLoopfilename = DirLoop'以下是单文件上传'(把D:\VBinet文件夹下的DD.txt文件上传到ftp://192.192.0.35的receive目录下)'Inet1.Execute , "put D:\VBinet\DD.txt receive\DD.txt"'Do While Inet1.StillExecuting'DoEvents'LoopEnd SubPrivate Sub Inet1_StateChanged(ByVal State As Integer) Dim temp As StringSelect Case StateCase icNoneCase icResolvingHosttemp = "正在查找"Case icHostResolvedtemp = "已找到IP地址"Case icConnectingtemp = "正在连接。
推荐-用VB的INET控件进行文件的自动上传下载服务 精品
用VB的INET控件进行文件的自动上传下载服务用VB的INET控件做FTP的上传文件:sys_time = CDate(Now)sys_time = Replace(sys_time, ":", "")sys_time = Replace(sys_time, " ", "")erName = "ll"Inet1.Password = "ll"Inet1.Protocol = icFTPInet1.RemoteHost = "10.10.200.21"Inet1.RemotePort = "27"Inet1.Execute , "PUT Dial.wav" + " " + newNameInet 控件也叫Internet Transfer 控件,这个控件封装了http协议以及ftp协议,使用起来非常方便。
所以大家经常使用。
然而大家通常使用的只是其部分功能,接下来我们讲一下它的全部详细功能,看过之后你也许会有眼前一亮的感觉。
会猛然觉得我们之前懂得的只是皮毛。
Internet Transfer 控件实现了两种广泛使用的Internet 协议:超文本传送协议(HyperText Transfer Protocol)(也就是HTTP) 和文件传送协议(File Transfer Protocol)(即FTP)。
使用Internet Transfer 控件可以通过OpenURL 或Execute 方法连接到任何使用这两个协议的站点并检索文件。
可以做到的大体方向在应用程序中添加FTP 浏览器。
创建自动从公共FTP 站点下载文件的应用程序。
分析World Wide Web 站点中的图形引用,并只下载图形。
提供以自定义格式显示从Web 页获得的动态数据。
《VB程序设计》注意事项(非常重要)
《VB程序设计》教师:胡绍海
请同学们在作业上传目录内建立自己的目录,格式是:姓名(学号)。
我会随时将同学上传的作业拷贝进行批改。
3、课件、例题、提问与解答
FTP Server: 202.112.147.56
UserName: vb6
Password: vb6
《VB程序设计》FTP注意事项:
1、《VB程序设计》FTP分两个部分,一个是作业上传,一个是课件、例题、提问与解答。
2、作业上传:
FTP Server: 202.112.147.56
UserName: vb
Password: vb
请同学将自己完成的作业上传至该目录。该目录可以上传,但不可下载。目的是防止作业拷贝。
在vb中利用Winsock控件实现FTP编程
在vb中利用Winsock控件实现FTP编程利用Winsock控件实现FTP编程一引言随着计算机在铁路各部门的普及,办公无纸化逐渐成为一种趋势,文件、资料、报表等数据的传送都通过计算机网络来完成。
FTP成为传送这些数据的流行工具。
为了更好地使用FTP,应该了解和掌握FTP 编程。
只有把FTP内嵌到应用程序中去,FTP的应用才更灵活,才能满足各种数据传输的需要。
本文以VB中的Winsock控件为工具,根据FTP的基本原理,阐明了FTP客户端编程的一般方法。
二FTP客户端与服务器间的基本协作过程下面是FTP模型的基本原理图:服务器数据传输进程客户端数据传输进程文件系统服务器协议接口客户端协议接口用户界面用户FTP命令FTP响应数据连接文件系统服务器FTP 客户端FTP1、客户端与服务器连接FTP是建立在TCP之上的连接,端口号使用21。
若客户端与服务器之间成功连接,服务器将返回字符串,如:220 GMS (Version 5.0)前三个字符220表示客户端与服务器成功连接,后面的字符会因服务器的不同而不同,但我们只关心前三个字符。
2、用户名和密码认证客户端发送用户名给服务器,如:USER guo如果服务器找到用户名guo,将返回字符串,如:331 User name okay, need password.接着客户端应发送密码给服务器,如:PASS aaa密码正确,返回如:230 User logged in, proceed.如果用户名或密码认证没通过,返回如:530 Not logged in.用户名也可以使用匿名,如:USER anonymous返回如:331 Anonymous access allowed,send identity (e-mail name) as password.3、建立数据连接FTP协议用两个连接来达到客户机与服务器之间交换数据的目的。
刚才建立了第一个连接——控制连接,它用于传送命令和响应。
精易模块 ftp 用法
精易模块ftp 用法精易模块FTP 用法简介:精易模块(JEasy)是一款基于Visual Basic 编写的模块库,其中包含了许多对于软件开发非常有用的功能和工具。
其中包括了一个用于连接和操作FTP(文件传输协议)服务器的模块,该模块可以帮助开发人员轻松地实现文件的上传和下载功能。
本文将详细介绍精易模块FTP 的用法,并提供一步一步的指南,帮助读者快速掌握这一功能。
目录:1. 安装和配置精易模块2. 连接FTP 服务器3. 上传文件到FTP 服务器4. 从FTP 服务器下载文件5. 删除FTP 服务器上的文件6. 列出FTP 服务器上的文件7. 断开与FTP 服务器的连接1. 安装和配置精易模块首先,我们需要下载并安装精易模块库,确保它可以被我们的开发环境使用。
下载地址为:[精易模块下载地址]。
安装完成后,我们需要在我们的项目中引入JEasy 模块。
在VB 项目的工具箱中,右键单击并选择“选择项”。
在“选择项目”对话框中,找到JEasy 模块并选中它,然后点击“确定”按钮。
2. 连接FTP 服务器在我们的VB 项目中,首先需要添加以下引用:Imports Imports .SocketsImports JEASYFTP在代码中,我们需要创建一个JEASYFTP 对象来连接到FTP 服务器。
使用以下代码来实现:Dim Ftp As New FtpClsFtp.FtpConnect("ftp.example", "username", "password")在上述代码中,需要将"ftp.example" 替换为你要连接的FTP 服务器的主机名或IP 地址,"username" 替换为你的用户名,"password" 替换为你的密码。
3. 上传文件到FTP 服务器要上传文件到FTP 服务器,只需使用以下代码:Ftp.FtpPut("localfile.txt", "remotefile.txt")上述代码中,需要将"localfile.txt" 替换为本地文件的路径,"remotefile.txt" 替换为上载到FTP 服务器的文件的名称。
基于vb环境WINDOWS API的ftp上传下载服务的实现
基于vb的ftp上传下载服务的实现Option ExplicitPublic Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA" _ (ByVal sAgent As String, ByVal LAccessType As Long, ByVal sProxyName As String, _ ByVal SProxyBypass As String, ByVal lFlags As Long) As LongPublic Declare Function InternetConnect Lib "wininet.dll" Alias "InternetConnectA" _(ByVal hInternetSession As Long, ByVal sServerName As String, _ByVal nServerPort As Integer, ByVal sUsername As String, _ByVal sPassword As String, ByVal lService As Long, _ByVal lFlags As Long, ByVal lContext As Long) As LongPublic Declare Function FtpGetFile Lib "wininet.dll" Alias "FtpGetFileA" _(ByVal hFtpSession As Long, ByVal lpszRemoteFile As String, _ByVal lpszNewFile As String, ByVal fFailIfExists As Boolean, _ByVal dwFlagsAndAttributes As Long, ByVal dwFlags As Long, _ByVal dwContext As Long) As BooleanPublic Declare Function FtpPutFile Lib "wininet.dll" Alias "FtpPutFileA" _(ByVal hFtpSession As Long, ByVal lpszLocalFile As String, _ByVal lpszRemoteFile As String, ByVal dwFlags As Long, _ByVal dwContext As Long) As BooleanPublic Declare Function FtpDeleteFile Lib "wininet.dll" Alias "FtpDeleteFileA" _ (ByVal hFtpSession As Long, ByVal lpszFileName As String) As BooleanPublic Declare Function FtpRenameFile Lib "wininet.dll" Alias "FtpRenameFileA" _ (ByVal hFtpSession As Long, ByVal lpszExsiting As String, ByVal lpszNew As String) As BooleanPublic Declare Function InternetCloseHandle Lib "wininet.dll" (ByVal hInet As Long) As IntegerPublic Declare Function FtpFindFirstFile Lib "wininet.dll" Alias "FtpFindFirstFileA" _ (ByVal hFtpSession As Long, ByVal lpszSearchFile As String, _lpFindFileData As WIN32_FIND_DATA, ByVal dwFlags As Long, _ByVal dwContent As Long) As LongPublic Declare Function InternetFindNextFile Lib "wininet.dll" Alias "InternetFindNextFileA" _(ByVal hFind As Long, lpvFndData As WIN32_FIND_DATA) As LongPublic Type FILETIMEdwLowDateTime As LongdwHighDateTime As LongEnd TypePublic Type WIN32_FIND_DATAdwFilAttributes As LongftCreationTime As FILETIMEftLastAccessTime As FILETIMEftLastWriteTime As FILETIMEnFileSizeHigh As LongnFileSizeLow As LongdwReserved0 As LongdwReserved1 As LongcFileName As String * 260cAlternate As String * 14End TypePublic Declare Function GetOpenFileName Lib "comdlg32.dll" Alias _ "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As LongType OPENFILENAMElStructSize As LonghwndOwner As LonghInstance As LonglpstrFilter As StringlpstrCustomFilter As StringnMaxCustFilter As LongnFilterIndex As LonglpstrFile As StringnMaxFile As LonglpstrFileTitle As StringnMaxFileTitle As LonglpstrInitialDir As StringlpstrTitle As Stringflags As LongnFileOffset As IntegernFileExtension As IntegerlpstrDefExt As StringlCustData As LonglpfnHook As LonglpT emplateName As StringEnd TypePrivate Sub Command1_Click()lnginet = InternetOpen(vbNullString, INTERNET_OPEN_TYPE_PRECONFIG, _ vbNullString, vbNullString, 0&)If lnginet Thenlnginetconn = InternetConnect(lnginet, "ip地址", 0, _"用户名", "密码", 1, 0, 0)If lnginetconn ThenblnRC = FtpGetFile(lnginetconn, "website/address.asp", "c:\address.asp", 0, 0, 1, 0)If blnRC ThenMsgBox "download ok!!!"End IfInternetCloseHandle lnginetconnInternetCloseHandle lnginetMsgBox "close ok!!!"ElseMsgBox "can't connect"End IfElseMsgBox "ftp wrong"End IfEnd SubPrivate Sub Command2_Click()Dim pData As WIN32_FIND_DATADim lngHINet As LongDim intError As IntegerDim strT emp As StringDim blnRC As BooleanpData.cFileName = String(260, 0)lnginet = InternetOpen(vbNullString, INTERNET_OPEN_TYPE_PRECONFIG, _ vbNullString, vbNullString, 0&)If lnginet Thenlnginetconn = InternetConnect(lnginet, "IP地址", 0, _"用户名", "密码", 1, 0, 0)If lnginetconn ThenlngHINet = FtpFindFirstFile(lnginetconn, "*.*", pData, 0, 0)strT emp = Left(pData.cFileName, InStr(1, pData.cFileName, String(1, 0), vbBinaryCompare) - 1)DopData.cFileName = String(260, 0)blnRC = InternetFindNextFile(lngHINet, pData)If Not blnRC ThenExit DoElsestrT emp = Left(pData.cFileName, InStr(1, pData.cFileName, String(1, 0), vbBinaryCompare) - 1)End IfLoopT ext1.T ext = strT empEnd IfEnd IfInternetCloseHandle lngHINetInternetCloseHandle lnginetconnInternetCloseHandle lnginetEnd Sub在FTP中,Put、Rename、Delete是怎样的?这些函数也相当简单。
VB操作FTP使用类
ftpInit = InternetOpen(vbNullString, INTERNET_OPEN_TYPE_PRECONFIG, vbNullString, vbNullString, 0&)
ftpConn = InternetConnect(ftpInit, IP, Port, UserName, PassWord, 1, 0, 0)
If ftpConn > 0 Then
ftpConnState = True
Else
ftpConnState = False
End If
ftpServer = ftpConnState
End Function
Private Declare Function FtpGetFile Lib "wininet.dll" Alias "FtpGetFileA" (ByVal hFtpSession As Long, ByVal lpszRemoteFile As String, ByVal lpszNewFile As String, ByVal fFailIfExists As Boolean, ByVal dwFlagsAndAttributes As Long, ByVal dwFlags As Long, ByVal dwContext As Long) As Boolean
Public Function ftpCreateDir(ByVal dirPath As String) As String
If ftpConnState = True Then
ftpCreateDir = FtpCreateDirectory(ftpConn, dirPath)
在vb中利用Winsock控件实现FTP编程
利用Winsock控件实现FTP编程一引言随着计算机在铁路各部门的普及,办公无纸化逐渐成为一种趋势,文件、资料、报表等数据的传送都通过计算机网络来完成。
FTP成为传送这些数据的流行工具。
为了更好地使用FTP,应该了解和掌握FTP编程。
只有把FTP内嵌到应用程序中去,FTP的应用才更灵活,才能满足各种数据传输的需要。
本文以VB中的Winsock控件为工具,根据FTP的基本原理,阐明了FTP客户端编程的一般方法。
二FTP客户端与服务器间的基本协作过程下面是FTP模型的基本原理图:服务器数据传输进程客户端数据传输进程文件系统服务器协议接口客户端协议接口用户界面用户FTP命令FTP响应数据连接文件系统服务器FTP 客户端FTP1、客户端与服务器连接FTP是建立在TCP之上的连接,端口号使用21。
若客户端与服务器之间成功连接,服务器将返回字符串,如:220 GMS (Version 5.0)前三个字符220表示客户端与服务器成功连接,后面的字符会因服务器的不同而不同,但我们只关心前三个字符。
2、用户名和密码认证客户端发送用户名给服务器,如:USER guo如果服务器找到用户名guo,将返回字符串,如:331 User name okay, need password.接着客户端应发送密码给服务器,如:PASS aaa密码正确,返回如:230 User logged in, proceed.如果用户名或密码认证没通过,返回如:530 Not logged in.用户名也可以使用匿名,如:USER anonymous返回如:331 Anonymous access allowed,send identity (e-mail name) as password.3、建立数据连接FTP协议用两个连接来达到客户机与服务器之间交换数据的目的。
刚才建立了第一个连接——控制连接,它用于传送命令和响应。
我们还要建立第二个连接——数据连接,用于数据传输。
VB+FTP删除文件代码
VB+FTP删除文件代码Private Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA" (ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, ByVal sProxyBypass As String, ByVal lFlags As Long) As LongPrivate Declare Function InternetConnect Lib "wininet.dll" Alias "InternetConnectA" (ByVal hInternetSession As Long, ByVal sServerName As String, ByVal nServerPort As Integer, ByVal sUsername As String, ByVal sPassword As String, ByVal lService As Long, ByVal lFlags As Long, ByVal lContext As Long) As Long Private Declare Function FtpGetFile Lib "wininet.dll" Alias "FtpGetFileA" (ByVal hFtpSession As Long, ByVal lpszRemoteFile As String, ByVal lpszNewFile As String, ByVal fFailIfExists As Boolean, ByVal dwFlagsAndAttributes As Long, ByVal dwFlags As Long, ByVal dwContext As Long) As BooleanPrivate Declare Function FtpPutFile Lib "wininet.dll" Alias "FtpPutFileA" (ByVal hFtpSession As Long, ByVal lpszLocalFile As String, ByVal lpszRemoteFile As String, ByVal dwFlags As Long, ByVal dwContext As Long) As BooleanPrivate Declare Function FtpDeleteFile Lib "wininet.dll" Alias "FtpDeleteFileA" (ByVal hFtpSession As Long, ByVal lpszFileName As String) As BooleanPrivate Declare Function FtpRenameFile Lib "wininet.dll" Alias "FtpRenameFileA" (ByVal hFtpSession As Long, ByVal lpszExsiting As String, ByVal lpszNew As String) As Boolean Private Declare Function InternetCloseHandle Lib "wininet.dll" (ByVal hInet As Long) As IntegerPrivate Declare Function FtpCreateDirectory Lib "wininet.dll" Alias "FtpCreateDirectoryA" (ByVal hFtpSession&, ByVallpszDirectory$) As BooleanDim 连接状态 As BooleanDim 连接句柄 As LongPublic Function 连接服务器(IP As String, 端口 As Integer, 帐号As String, 密码 As String) As BooleanDim 初始化 As Long初始化= InternetOpen(vbNullString, INTERNET_OPEN_TYPE_PRECONFIG, vbNullString, vbNullString, 0&)连接句柄 = InternetConnect(初始化, IP, 端口, 帐号, 密码, 1, 0, 0) If 连接句柄 > 0 Then连接状态 = TrueElse连接状态 = FalseEnd If连接服务器 = 连接状态End FunctionPublic Function 上传文件(本地路径As String, 远程路径As String) As BooleanIf 连接状态 = True Then上传文件 = FtpPutFile(连接句柄, 本地路径, 远程路径, 1, 0)ElseMsgBox "请先确认连接"End IfEnd FunctionPublic Function 下载文件(远程路径As String, 本地路径As String) As BooleanIf 连接状态 = True Then下载文件= FtpGetFile(连接句柄, 远程路径, 本地路径, False, &H80000000, &H0, 0)ElseMsgBox "请先确认连接"End IfEnd FunctionPublic Function 删除文件(ByVal 文件路径) AsBooleanIf 连接状态 = True Then删除文件 = FtpDeleteFile(连接句柄, 文件路径)ElseMsgBox "请先确认连接"End IfEnd FunctionPublic Function 创建目录(ByVal 路径 As String) As StringIf 连接状态 = True Then创建目录 = FtpCreateDirectory(连接句柄, 路径)ElseMsgBox "请先确认连接"End IfEnd FunctionPublic Function 文件改名(ByVal 原文件名 As String, ByVal 新文件名 As String)If 连接状态 = True ThenReturnVal& = FtpRenameFile(连接句柄, 原文件名, 新文件名)ElseMsgBox "请先确认连接" End IfEnd Function。
使用Iisftp.vbs创建FTP站点的方法
使⽤Iisftp.vbs创建FTP站点的⽅法应⽤到: Windows Server 2003, Windows Server 2003 R2, Windows Server 2003 with SP1可以使⽤命令⾏脚本 iisftp.vbs(存储在 systemroot\System32 中)在运⾏带有 IIS 6.0 的 Windows Server 2003 家族成员的本地或远程计算机上创建⽂件传输协议 (FTP) 站点配置。
该命令并不创建或破坏内容,但它会设置⽬录结构和 IIS 配置⽂件。
在使⽤ iisftp.vbs 创建新的 FTP 站点时,只指定创建站点和标识其内容所需的基本属性。
Iisftp.vbs 使⽤的默认属性与 IIS 管理器在建⽴新的 FTP 站点时使⽤的属性相同,并且它遵循相同的继承属性规则。
要配置 FTP 站点的更多⾼级属性,请使⽤ IIS 管理器。
重要事项只有本地计算机上 Administrators 组的成员才能运⾏脚本和可执⾏⽂件。
作为安全性最佳操作,请使⽤不属于 Administrators 组的帐户登录计算机,然后使⽤ runas 命令以管理员⾝份运⾏脚本和可执⾏⽂件。
在命令提⽰符下,键⼊ runas /profile/User:MyComputer\Administrator cmd,使⽤管理员权限打开⼀个命令窗⼝,然后键⼊ cscript.exeScriptName(包括脚本的完整路径和任何参数)。
本主题包括下列信息:•语法:键⼊命令时必须采⽤的顺序以及它后⾯的任何参数和选项。
•参数:赋予命令中变量的值。
•⽰例:⽰例代码和对结果的说明。
语法iisftp /create Path SiteName iisftp /create Path SiteName[/b Port] [/i IPAddress] [/dontstart] [/isolation {AD|Local} [/ADdomain DomainName /ADadmin [Domain\]User /ADpass Password]] [/s Computer [/u [Domain\]User /p Password]]参数路径指定 FTP 站点内容⽂件的位置。
如何在Visual Basic中调用动态链接库实现ftp功能
如何在Visual Basic中调用动态链接库实现ftp功能
王阳;王援;束玉
【期刊名称】《黑龙江气象》
【年(卷),期】2008(25)1
【摘要】本文简要介绍了手工进行ftp传输方式的优点与缺点和如何通过Visual Basic编程语言调用动态链接库文件(.dll文件);同时详细介绍了如何通过动态链接库声明函数、调用函数和利用函数返回值进行有效传输的技术.
【总页数】3页(P43-45)
【作者】王阳;王援;束玉
【作者单位】黑龙江省气象局,黑龙江,哈尔滨,150001;黑龙江省人工影响天气办公室,黑龙江,哈尔滨,150030;黑龙江省防雷中心,黑龙江,哈尔滨,150080
【正文语种】中文
【中图分类】TP311
【相关文献】
1.在Visual Basic 6.O环境下实现动态链接库的创建和调用 [J], 张仁彦;陈延国;高振东
2.用Visual Basic调用自定义Visual C++动态链接库的效率研究 [J], 龚红仿
3.如何在Visual Basic应用程序中调用动态链接库 [J], 王向阳
4.在Visual Basic程序中调用Fortran动态链接库的方法 [J], 鲜飞军;杨合
5.如何在Visual Basic应用程序中调用动态链接库 [J], 王向阳
因版权原因,仅展示原文概要,查看原文内容请购买。
在VB中实现文件上传
☆在V B中实现文件上传☆V isual Basic 作为一个集应用程序开发、测试、查错功能于一体的集成式开发环境,越来越受到程序员的青睐。
笔者在开发某数据库维护系统的过程中,选择了V B5.0作为开发平台,U nix作为服务器端操作系统,Informix 作为服务器数据库。
问题的出现在开发该维护系统的过程中,注意到Informix 数据库的字段类型C L O B 填入数据时需要函数FILETOC L OB("FILENAME","SERVER") , 其中的"FILENAME"需要指出文件路径和文件名称。
然而,在维护过程中此文件是在客户端执行的,这样就要求即时将文件传输到服务器端。
解决办法1. F TP传输工具我们首先使用F TP传输工具,用VB5.0中SHELL 命令调用DO S批处理文件来实现传输的需要。
Shell调用格式:Shell(pathname[,w indow sty le])例子:Shell("c:\w indow s\upload.bat")批处理文件upload.bat 的内容:c:\w indow s\ftp hostnameusernamepassw ordsend c:\zrh\upload.txt upload.txtby e该命令实现了文件"upload.txt"的传输要求。
在使用完毕之后, 再调用命令把该文件删除。
例子:Shell("c:\w indow s\del_up.bat")批处理文件del_up.bat 的内容:c:\w indow s\ftp hostnameusernamepassw orddele upload.txtby e这样,文件"upload.txt"被删除。
但是,另一个问题出现了。
由于Shell 函数的运行机制是与其它程序同步执行,也就是说,当调用Shell 函数的子程序还没有执行完毕之前,Shell函数后面的语句已经执行。
用VB的INET控件进行文件的自动上传下载服务
用VB的INET控件进行文件的自动上传下载服务用VB的INET控件做FTP的上传文件:sys_time = CDate(Now)sys_time = Replace(sys_time, ":", "")sys_time = Replace(sys_time, " ", "")erName = "ll"Inet1.Password = "ll"Inet1.Protocol = icFTPInet1.RemoteHost = "10.10.200.21"Inet1.RemotePort = "27"Inet1.Execute , "PUT Dial.wav" + " " + newNameInet 控件也叫Internet Transfer 控件,那个控件封装了http协议以及ftp协议,使用起来特不方便。
因此大伙儿经常使用。
然而大伙儿通常使用的只是其部分功能,接下来我们讲一下它的全部详细功能,看过之后你也许会有眼前一亮的感受。
会猛然觉得我们之前明白得的只是皮毛。
Internet Transfer 控件实现了两种广泛使用的 Internet 协议:超文本传送协议(HyperText Transfer Protocol)(也确实是HTTP) 和文件传送协议(File Transfer Protocol) (即FTP)。
使用 Internet Transfer 控件能够通过 OpenURL 或 Execute 方法连接到任何使用这两个协议的站点并检索文件。
能够做到的大体方向在应用程序中添加 FTP 扫瞄器。
创建自动从公共 FTP 站点下载文件的应用程序。
分析 World Wide Web 站点中的图形引用,并只下载图形。
VB编程FTP(微软详实案例附带源程序)
实例7 FTP客户端程序目标和要点实例目标本实例将介绍创建FTP客户端程序并进行与FTP服务器连接的实例,程序运行的结果如图所示。
图启动窗体:图7-1 Ftp客户端程序运行时的启动窗体主窗体:图7-2 Ftp客户端程序运行时的主窗体175本例中利用API函数实现与FTP服务器的连接与对话,可以根据主机服务器的地址和端口连接到Internet上任何一台FTP服务器上,对FTP服务器进行文件上载、文件下载等操作。
技术要点本实例的技术要点主要包括:1.建立FTP连接的基本原理与步骤2.建立FTP连接的要使用到的API函数3.对FTP进行文件与目录操作在本实例中,与FTP服务器的连接与对话是通过API函数来实现的,建立连接必须遵循一定的步骤和规则,才能正确地与FTP服务器取得连接和对话,总的说来,建立连接的步骤一般分为以下几步:①打开Internet会话②建立FTP类型的Internet连接③设置FTP服务器的当前目录④查看FTP服务器上指定目录下的文件⑤从FTP服务器当前目录下载文件或上载文件⑥在FTP服务器上进行目录或文件操作,如创建新目录,删除目录,删除文件等⑦关闭与FTP服务器的连接⑧关闭Internet对话(其中步骤④、⑤、⑥可重复进行)设计窗体时,设计窗体时为了便于了解建立连接的步骤,将打开Internet对话作为一个单独的启动时显示的窗体,在成功打开Internet对话后,显示进行FTP对话的主窗体,在主窗体中与FTP服务器交互对话。
对于实现连接与对话的每一个步骤,API函数至关重要,在整个交互对话过程中,我们只要熟悉了相应的API函数,就不难理解进行FTP操作的用法。
至于API函数怎么样通过Internet与FTP进行会话的底层细节,我们可不必去考虑。
实现步骤☞创建启动窗体frmFTPst启动VB,新建一个标准EXE过程,在默认的窗体Form1中加载以下控件:两个CommonButton控件、两个TextBox控件、两个Frame控件、两个Label控件。
基于VB多线程技术的FTP的实现
基于VB多线程技术的FTP的实现1 引言Internet 的发展非常迅猛,面对Internet 这个无穷宝库,人们会经常下载所需要的各种各样的信息,这就要用到文件传输协议FTP(File Transfer Protocol)。
FTP 是因特网上较早出现的服务功能之一,迄今其仍是Internet 上最常用也是最重要的服务功能。
面对频繁的文件下载和相对拥挤的网络通路,如何快速、高效、方便地利用FTP 获取所需要的信息显得越来越重要。
为使系统具有更好的交互性,可以使用近年来出现的多线程机制提高系统的性能。
线程是比进程更小的能完成一个任务的执行流。
多线程是指在应用程序中有多个并发的线程在同时运行,这可以加快程序的响应时间,提高计算机资源的使用效率。
多线程技术在VB 的Internet Transfer 控件实际上是一个Activex 控件,他支持HTTP 和FTP 协议。
前者用于浏览WWW 的HTML 页面,后者用于连接FTP 服务器进行文件传输。
新建一个工程,在窗体上放置Internet Transfer 控件itl,另外放置2 个文本框ta 和tc,分别用来输入FTP 站点地址和列出该站点指定目录下的可供下载的文件。
2.1 itl 的主要属性和方法itl.AccessType 是与Internet 的连接方式。
可以设置为1,2,0,分别表示通过电话线、局域网和缺省(按照注册表中的设置)方式与Internet 连接;itl.URL 是FTP 站点的地址;itl.RequestTimeout 为连接的时间限制。
OpenURL 方法用于同步连接指定的URL 并返回该URL 中的内容;Execute 方法异步执行对远程服务器的请求命令,此方法会触发StateChanged事件;Cancel 方法用于强行关闭当前的连接。
2.2 文件传输的实现。
VBVFP联合应用
VBVFP联合应用VB+VFP联合应用各类语言都有其长处和缺憾,如何取长补短呢?希望这篇文章能起到抛砖引玉的效果。
目标:必须在VFP环境对CSV格式文件中所有的字符“/”替换成“-”分析:如果在VFP中读入CSV格式文件然后再找字符“/”再替换成“-”,势必比较困难,速度也会很慢。
因为不知道字符“/”将出现在那个字段。
也不清楚字符“/”出现的位置。
而这类问题的处理如果用VB就很简单。
可以在VB中正行读入,然后使用Replace命令就可以了,然后循环读取下一行,直到文件末尾。
可以使用OLE组件技术在VFP中调用VB实现的相关功能。
具体方法如下:首先用VB生成一个Dll,名为Lib,模块名为Tools。
在T ools模块中写入下列代码。
例如:Public Function ReplaceA(ByVal Source As String)If Source = '' ThenExit FunctionEnd IfOn Error GoTo Open_ErrDim Destination As StringDestination = 'c:/tmp.t'FileCopy Source, DestinationKill SourceOn Error GoTo Replace_ErrDim textLineOpen Destination For Input As #1 Open Source For Output As #2Do While Not EOF(1)Line Input #1, textLinetextLine = Replace(textLine, '/', '-') Print #2, textLineLoopClose #1Close #2Kill DestinationExit_Sub:Exit FunctionReplace_Err:Debug.Print Err.Description Resume Exit_SubOpen_Err:Debug.Print Err.Description Resume Exit_SubEnd Function然后在VFP中调用方法如下:mytools = createobject('Lib.myLib')mytools.ReplaceA('完整文件名并且要带绝对路径') release mytools。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计任务书题目: FTP文件传输的实现初始条件:理论:学完“操作系统”和“计算机网络”课程,掌握一种高级程序设计语言(C++、C#、Java、Delphi)及集成开发平台的使用。
实践:计算机学院科学系实验中心提供计算机、软件平台和网络环境。
如果自己有计算机可以在其上进行设计。
要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)(1)模仿应用FTP协议。
(2)主要功能:1支持站点目录和文件结构浏览。
2支持断线自动重新连接并自动恢复传输。
3文件列表过滤,远程编辑,整个远端目录删除,目录上传下载。
(3)应用所学计算机网络课程中的知识,利用网络实用程序实现其协议。
(4)编制好网络实用程序后,设计若干用例,上机测试并分析所设计的程序。
(5)设计报告格式按附件要求书写。
课程设计报告书正文的容应包括:设计题目;需求说明(要求、功能简述)或问题描述;设计说明(简要的分析与概要设计);详细的算法描述;源程序与执行结果(含测试方法和测试结果);使用说明;设计心得(设计的特点、不足、收获与体会);展望(该实用程序进一步改进扩展的设想)。
时间安排:设计时间一周:周1:查阅相关资料。
周2:系统分析,设计。
周3周4:编程并上机调试周5:撰写课程设计报告。
设计验收安排:19周星期五8:00起到计算机学院科学系实验中心进行上机验收。
设计报告书收取时间:19周的星期五下午5:00之前。
指导教师签名:年月日系主任(或责任教师)签名:年月日FTP文件传输的实现1设计题目FTP文件传输的实现2需求说明(要求、功能简述)或问题描述2.1 FTP概念和传输原理FTP是Internet上使用非常广泛的一种通讯协议。
它是由支持Internet文件传输的各种规则所组成的集合,这些规则使Internet用户可以把文件从一个主机拷贝到另一个主机上,因而为用户提供了极大的方便和收益。
FTP和其它Internet服务一样,也是采用客户机/服务器方式。
使用方法很简单,启动FTP客户端程序先与远程主机建立连接,然后向远程主机发出传输命令,远程主机在收到命令后就给予响应,并执行正确的命令。
FTP有一个根本的限制,那就是,如果用户未被某一FTP主机授权,就不能访问该主机,实际上是用户不能远程登录(Remote Login)进入该主机。
也就是说,如果用户在某个主机上没有注册获得授权,没有用户名和口令,就不能与该主机进行文件的传输。
而Anonymous FTP则取消了这种限制。
FTP支持两种模式,一种方式叫做Standard(也就是PORT方式,主动方式),一种是Passive (也就是PASV,被动方式)。
Standard模式FTP的客户端发送PORT命令到FTP服务器。
Passive模式FTP的客户端发送PASV命令到FTPServer。
Port模式FTP客户端首先和FTP服务器的TCP21端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。
PORT命令包含了客户端用什么端口接收数据。
在传送数据的时候,服务器端通过自己的TCP20端口连接至客户端的指定端口发送数据。
FTP server必须和客户端建立一个新的连接用来传送数据。
Passive模式在建立控制通道的时候和Standard模式类似,但建立连接后发送的不是Port命令,而是Pasv命令。
FTP服务器收到Pasv命令后,随机打开一个高端端口(端口号大于1024)并且通知客户端在这个端口上传送数据的请求,客户端连接FTP服务器此端口,然后FTP服务器将通过这个端口进行数据的传送,这个时候FTP server不再需要建立一个新的和客户端之间的连接。
FTP可用多种格式传输文件,通常由系统决定,大多数系统(包括UNIX系统)只有两种模式:文本模式(ASCII)和二进制模式(BIN/IMAGE)。
简单的说,FTP就是完成两台计算机之间的拷贝,从远程计算机拷贝文件至自己的计算机上,称之为下载文件。
若将文件从自己计算机中拷贝至远程计算机上,则称之为上载文件。
在TCP/IP协议中,FTP标准命令TCP端口号为21,Port方式数据端口为20。
FTP(非匿名)必须要有4要素:FTP主机地址,端口号,用户名,密码。
2.2需求说明完成两台计算机之间的拷贝,实现文件的上传和下载;支持站点目录和文件结构浏览;文件列表过滤,远程编辑,整个远端目录删除;支持断线自动重新连接并自动恢复传输。
3设计说明(简要的分析与概要设计)采用VB编程,通过建立一系列的窗体模块,程序模块,类模块编制一个小的应用软件。
该软件的功能是当程序运行成功后,用户可以选择任意的FTP主机地址进行登陆。
当选择是匿名的FTP主机地址时,选择anonymous复选框,这时只需要输入FTP主机地址就可以登陆,此时用户名为anonymous,密码为Emai1地址,以便更好地对用户访问进行跟综。
如果不是匿名登陆,则取消选择anonymous复选框,这时要输入用户名和密码,一个用户名对应了一个访问的权限。
通过WINSOCK建立连接,将信息发送到远程的ftp服务器主机上,实现用户的登陆。
当用户成功登陆后,远程FTP主机的文件就全部列在frmMain窗体左侧的TreeView 控件中,当点机TreeView控件中的文件夹时,相应的文件夹中的文件就列在右侧的ListView控件中,并且显示文件的图标,大小和最近的访问日期。
显示的方式可以通过点击工具栏中的图标来设置,文件可以以大图标的形式显示,也可以以小图标的形式显示。
当用户选择了远程的某一个文件后,可以点击工具栏上的下载,删除,重命名图标来实现对远程文件的操作。
但实际上大多数FTP主机为了安全采取了一些保护措施以保护自己的文件。
除非你有特殊的权限,否则不能对文件进行修改和删除。
但是大多数匿名FTP 主机都允许用户从其下载文件。
用户也可以在本地选择文件上传到FTP服务器主机,大多数用户不能将自己机器上的任何一个文件拷贝至匿名FTP主机上。
即使有些匿名FTP主机确实允许用户上载文件,用户也只能将文件上载至某一指定上载目录中。
随后,系统管理员会去检查这些文件,他会将这些文件移至另一个公共下载目录中,供其他用户下载,利用这种方式,远程主机的用户得到了保护,避免了有人上载有问题的文件,如带病毒的文件。
因此要实现文件的上传,还需选择一个特殊的可以用户上传文件的FTP服务器主机地址。
4详细的算法描述5 源程序与执行结果(含测试方法和测试结果)5.1原程序部分5.1.1 frmMain 窗体的部分代码Const NAME_COLUMN = 0Const TYPE_COLUMN = 1Const SIZE_COLUMN = 2Const DATE_COLUMN = 3Private Declare Function LockWindowUpdate Lib "user32" (ByVal hwndLock As Long) As LongDim mbMoving As Boolean '定义是否鼠标按下Const sglSplitLimit = 500 '定义最小的分割距离Private m_LastNode As NodePrivate WithEvents m_FtpConnection As CFtpConnectionPrivate m_strFile As StringPrivate m_lFileSize As LongPrivate Sub Check1_Click()If Check1.Value Thenm_FtpConnection.PassiveMode = TrueElsem_FtpConnection.PassiveMode = FalseEnd IfEnd SubPrivate Sub CoolBar1_HeightChanged(ByVal NewHeight As Single)SizeControls picSplitter.LeftEnd SubPrivate Sub Form_Load()Me.Left = GetSetting(App.Title, "Settings", "MainLeft", 1000) 'app.title是当前程序的标题Me.Top = GetSetting(App.Title, "Settings", "MainTop", 1000) '表示读取注册表中关于App.Title所指的应用程序中Settings注册表目录下的MainTop变量的值,如果没有找到这个注册表变量则,默认为1000Me.Width = GetSetting(App.Title, "Settings", "MainWidth", 6500)Me.Height = GetSetting(App.Title, "Settings", "MainHeight", 6500)Set m_FtpConnection = New CFtpConnectionm_FtpConnection.Timeout = 180End SubPrivate Sub Form_Unload(Cancel As Integer)Dim i As IntegerSet m_FtpConnection = Nothing 'close all sub formsFor i = Forms.Count - 1 To 1 Step -1 '卸载所有窗体Unload Forms(i)NextSaveSetting App.Title, "Settings", "ViewMode", lvListView.ViewEnd SubPrivate Sub m_FtpConnection_StateChanged(State As FTP_CONNECTION_STATES) Dim strStatus As StringSelect Case StateCase FTP_CONNECTION_RESOLVING_HOSTstrStatus = "Resolving host..."Case FTP_CONNECTION_HOST_RESOLVEDstrStatus = "Host resolved"Case FTP_CONNECTION_CONNECTEDstrStatus = "Connected"Case FTP_CONNECTION_AUTHENTICATIONstrStatus = "Authentication..."Case FTP_USER_LOGGEDstrStatus = "You are logged in. Connection ready."Case FTP_ESTABLISHING_DATA_CONNECTIONstrStatus = "Establishing data connection..."Case FTP_DATA_CONNECTION_ESTABLISHEDstrStatus = "Data connection established."Case FTP_RETRIEVING_DIRECTORY_INFOstrStatus = "Retrieving directory info..."Case FTP_DIRECTORY_INFO_COMPLETEDstrStatus = "Directory listing completed."Case State = FTP_TRANSFER_STARTINGstrStatus = "Transfer in progress..."Case FTP_TRANSFER_COMLETEDstrStatus = "Transfer completed."ProgressBar1.Value = 0.01m_lFileSize = 0End SelectsbStatusBar.Panels(1).Text = strStatusEnd SubPrivate Sub imgSplitter_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)With imgSplitter 'imgSplitter为image(图片)控件picSplitter.Move .Left, .Top, .Width \ 2, .Height - 20End WithpicSplitter.Visible = TruembMoving = TrueLockWindowUpdate Me.hwnd '指将句柄为Handle的窗体锁定,不能更新。