用vb的inet控件进行文件的自动上传下载服务

上传人:第*** 文档编号:35836843 上传时间:2018-03-21 格式:DOC 页数:40 大小:85.50KB
返回 下载 相关 举报
用vb的inet控件进行文件的自动上传下载服务_第1页
第1页 / 共40页
用vb的inet控件进行文件的自动上传下载服务_第2页
第2页 / 共40页
用vb的inet控件进行文件的自动上传下载服务_第3页
第3页 / 共40页
用vb的inet控件进行文件的自动上传下载服务_第4页
第4页 / 共40页
用vb的inet控件进行文件的自动上传下载服务_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《用vb的inet控件进行文件的自动上传下载服务》由会员分享,可在线阅读,更多相关《用vb的inet控件进行文件的自动上传下载服务(40页珍藏版)》请在金锄头文库上搜索。

1、用 VB 的 INET 控件进行文件的自动上传下载服务用 VB 的 INET 控件做 FTP 的上传文件:sys_time = CDate(Now)sys_time = Replace(sys_time, “:“, “)sys_time = Replace(sys_time, “ “, “)Inet1.UserName = “ll“Inet1.Password = “ll“Inet1.Protocol = icFTPInet1.RemoteHost = “10.10.200.21“Inet1.RemotePort = “27“Inet1.Execute , “PUT Dial.wav“ + “

2、 “ + newNameInet 控件也叫 Internet Transfer 控件,这个控件封装了 http 协议以及 ftp 协议,使用起来非常方便。所以大家经常使用。然而大家通常使用的只是其部分功能,接下来我们讲一下它的全部详细功能,看过之后你也许会有眼前一亮的感觉。会猛然觉得我们之前懂得的只是皮毛。Internet Transfer 控件实现了两种广泛使用的 Internet 协议:超文本传送协议(HyperText Transfer Protocol)(也就是 HTTP) 和文件传送协议(File Transfer Protocol) (即 FTP)。使用 Internet Tran

3、sfer 控件可以通过 OpenURL 或 Execute 方法连接到任何使用这两个协议的站点并检索文件。可以做到的大体方向在应用程序中添加 FTP 浏览器。创建自动从公共 FTP 站点下载文件的应用程序。分析 World Wide Web 站点中的图形引用,并只下载图形。提供以自定义格式显示从 Web 页获得的动态数据。基本操作Internet Transfer 控件的功能依赖于将要使用的协议。由于所支持的两种协议工作起来不尽相同,所能够进行的操作就依赖于正在使用的协议。例如,GetHeader 方法只能用于 HTTP(HTML 文档)协议。然而,有些过程对两个协议是通用的。最基本的,如果要

4、使用任何一个协议,则必须:将 AccessType 属性设置为合法的代理服务器。用合法的 URL 调用 OpenURL 方法。用合法的 URL 和协议支持的命令调用 Execute 方法。用 GetChunk 方法从缓冲区获取数据。设置 AccessType 属性:使用代理服务器为了与 Internet 建立任何形式的连接,必须确定计算机如何连接到 Internet 上。如果在 intranet 上,可能需要提供代理服务器才能连接到 Internet 上。简单地说,代理服务器是计算机和 Internet 之间的媒介。intranet 上所有需要连接到 Internet 上的计算机,都必须通过代

5、理服务器。代理行使 intranet 和 Internet 之间的防火墙功能,能够阻止非法的最终用户和外部请求,也就保护了 intranet 不受破坏。要查找计算机中的代理设置值,请按照以下步骤执行:打开控制面板的 Internet 选项。在“Internet 选项”对话框中,单击“连接” 。在“代理服务器”中,确认选中了“通过代理服务器连接”复选框。如果选中了,则单击“设置” 。在该对话框中可以找到能够用于多种协议的代理服务器的名称。如果没有定义代理服务器,请与系统管理员联系,以获得可用的代理服务器。如果希望使用对话框中未列出的代理服务器,可将 AccessType 属性设置为 icName

6、dProxy (2)。然后将 Proxy 属性设置为代理服务器的名称,如下面的代码所示:Inet1.Proxy = “myProxyName“Inet1.AccessType = icNamedProxy另一方面,如果希望使用缺省代理服务器(由计算机的注册表决定) ,则可以忽略 Proxy 属性,而只需将 AccessType 设置为 icUseDefault (0)。AccessType 的设置值在下表中列出:常数 值 描述icUseDefault 0 (缺省)用作缺省。控件使用注册表中的缺省设置访问 Internet。icDirect 1 直接连接 Internet。该控件可直接连接到 I

7、nternet。icNamedProxy 2 命名的代理服务器。指示该控件使用 Proxy 属性确定的代理服务器。调用 OpenURL 方法设置完 AccessType 属性后,最基本的操作就是用合法的 URL 调用 OpenURL 方法。使用 OpenURL 方法时,操作所得到的结果将依赖于目标 URL。例如下面的 URL 将返回在 中找到的 HTML 文档:名为“Text1”的 TextBox 控件保存了该方法的结果。Internet 传输控件的名称是“Inet1” 。Text1.Text = Inet1.OpenURL(“http:/“)作为结果,TextBox 控件保存了 HTML

8、源码,它看上去应和下图显示的相似:在这种情况下,缺省操作返回的是 URL 定位的 HTML 文档。然而,如果 URL 被改为指向文本文件,则将获得实际的文件。例如,下面的代码:Text1.Text = Inet1. _OpenURL(“ftp:/ 在使用 OpenURL 或 Execute 方法时,不需要设置 Protocol 属性。Internet Transfer 控件会自动按 URL 的协议部分确定的协议来设置。最后,可以用包含附加数据的 URL 调用 OpenURL 方法。例如,很多 Web 站点提供了搜索数据库的能力。要搜索数据库,则需要在发送的 URL 中包含搜索条件。例如下面的代

9、码用条件“find=Maui”调用名为“search.exe”的搜索引擎。Dim strURL As StringstrURL = “http:/ = Inet1.OpenURL(strURL)如果搜索引擎找到了符合条件的内容,将合成一个 HTML 文档并携带适当的信息返回。用 OpenURL 方法保存到文件如果需要将通过 OpenURL 方法获取的数据保存到文件,可以使用 Open、Put 和 Close 语句,如下面的代码所示。该示例先将获得的二进制文件传入 Byte 数组,然后将该数据保存到磁盘中:Dim strURL As StringDim bData() As Byte 数据变量D

10、im intFile As Integer 可用文件变量strURL = _“ftp:/ xe“intFile = FreeFile() 将 intFile 设置为未使用的文件 OpenURL 方法的结果首先传入 Byte 数组,然后将 Byte 数组保存到磁盘。bData() = Inet1.OpenURL(strURL, icByteArray)Open “C:TempSoftlib.e xe“ For Binary Access Write _As #intFilePut #intFile, , bData()Close #intFile可用类似的过程将文本文件写入磁盘中,不同的只是不再

11、需要 Byte 数组了,数据可以直接保存到文件中:Dim strURL As String URL 字符串Dim intFile As Integer 可用文件变量IntFile = FreeFile()strURL = “http:/“Open “c:tempMSsource.txt“ For Output _As #IntFileWrite #IntFile, Inet1.OpenURL(strURL)Close #IntFile同步和异步传输OpenURL 方法以同步方式传输数据。在这里,同步指的是传输操作未完成之前,不能执行其它过程。这样数据传输就必须在执行其它代码之前完成。而 Exe

12、cute 方法以异步方式传输数据。在调用 Execute 方法时,传输操作与其它过程无关。这样,在调用 Execute 方法后,在后台接收数据的同时,即可同时执行其它代码。对 Internet Transfer 控件的使用者来说这意味着什么?简单地说,用 OpenURL 方法能够直接得到可保存到磁盘的数据流(如上所述) ,或者直接在 TextBox 控件中阅览(如果数据是文本格式的) 。从另一方面说,如果用 Execute 方法获取数据,则必须用 StateChanged 事件监视该控件的连接状态。当达到适当的状态时,调用 GetChunk 方法从控件的缓冲区获取数据。下面更详细地讨论这一操作

13、。在 FPT 协议中使用 Execute 方法Execute 方法具有四个参数:url、operation、data 和 requestHeaders。FTP 操作只用到了 operation 参数和 url 参数,其中后者是可选的。例如,要从远程计算机中得到一个文件,可用下面的代码:Inet1.Execute “FTP:/“, _“GET disclaimer.txt C:TempDisclaimer.txt“如果正在用 FTP 从匿名 FTP 服务器中获取文件,就应熟悉在服务器目录树中漫游的特定命令,以及将其中文件获取到本地的硬盘中的命令。例如,要用 FPT 协议改变目录,应使用带有希望改

14、变到的目录路径的“CD”命令。对绝大多数通用操作,如将文件传入服务器,以及从服务器获取文件,Internet 传输控件在 Execute 方法中使用了(与 FTP)相同或相近的命令。例如,下面的代码将“CD”命令作为 Execute 方法的参数以改变路径:txtURL 文本框包含了要打开的路径。txtRemotePath 文本框包含了要改变到的路径。Inet1.Execute txtURL.Text, “CD “ 使用 FTP 协议则可以登录到 FTP 服务器。一般的 FTP 命令,例如 CD、GET 都可以通过 Execute 方法实现。 下面是一个设置 INET 控件属性的例子。 inet

15、1.URL=ftp:/username:passwordhostname/document inet1.Protocol=2-icFTP inet1.RemoteHost=hostname inet1.RemotePort=21 inet1.Username=username inet1.Password=password 执行文件传输: Inet1.Execute“ftp:/username:passwordhostname“,_ “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 的执行状

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号