社区
VB基础类
帖子详情
请如何使用WININET(api)或Internet Transfer(控件)
xjbx
博客专家认证
2003-07-10 11:35:25
如何用他们上传文件?
...全文
73
4
打赏
收藏
请如何使用WININET(api)或Internet Transfer(控件)
如何用他们上传文件?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xjbx
2003-07-15
打赏
举报
回复
没人可以帮助我么?
xjbx
2003-07-10
打赏
举报
回复
这个资料我有
我是想用http 协议做?如何实现呢?
lxqlogo0
2003-07-10
打赏
举报
回复
用Internet Transfer编写FTP程序
常上网的人都对FTP熟悉得不能再熟悉了,它是文件传输协议的英文缩写,所谓文件传输协议就是人们规定的在网络间传输文件的一组规定,里面规定了数据包的格式、数据包头部结构、命令结构等等。其实要想实现FTP的功能并不是很难,下面我们就来介绍一下如何作一个简单的Windows界面的FTP程序。
其实我们常用的VC和VB等开发工具就可以轻松搞定,下面我们就来说说在VB中使用Microsoft Internet Transfer控件实现FTP的功能。
Internet Transfer控件,支持HTTP(超文本传输协议)和FTP(文件传输协议),超文本传输协议就是我们的浏览器传输网页时使用的协议,也就是说你也可以用它作一个浏览器。我们这里主要讨论文件传输协议FTP。
首先创建一个新工程,在你的工具箱上添加Microsoft Internet Transfer控件,并放到你的主窗体上,注意看它的属性:
Protocol指所用的协议,我们这里选2-icFTP,就是FTP协议。
UserName和Password是这样的:UserName和Password都给null或“"时,发送到FTP Server的UserName是“anonymous",Password是用户的Email,当UserName给null或“",而Password为非空字符串时是错误的,其他情况正常。
RemoteHost写FTP Server(就是你要连到的那台主机,你可以在程序中动态地给这个属性赋值,以适应连接到不同的主机上)的域名地
址或IP,RemotePort在你指定FTP协议时自动被设置成21,URL属性由RemoteHost、RemotePort、Protocol等几个属性内容组合而成,如果前面已经给出这些值,VB会自动生成URL,以上这些属性均可以在程序中动态赋值,使你可以更灵活地运用这个控件。
下面说说这个控件的方法(Method):
1、OpenURL,调用该方法会连通FTP Server属性中指定的主机,并返回它的Welcom Message,一般是一些欢迎词和当前有多少用户登录等信息。
2、Execute方法用于执行对远程服务器的请求,它能发送对特定协议有效的请求,对于FTP协议来说,有效的操作有:
CD file1
改变目录。改变到file1中指定的目录。
CDUP
改变到父目录。等效于“CD...”
CLOSE
关闭当前的FTP连接。
DELETE file1
删除file1中指定的文件。
DIR,LS file1
搜索file1中指定的目录(允许用通配符,但要使用远程主机的语法)。如果没有指定file1,将返回当前的整个工作目录。使用GetChunk方法返回目录数据。
GET,RECV file1 file2
检索file1中指定的远程文件,并创建file2中指定的新本地文件。
MKDIR file1
创建目录。创建file1中指定的目录。创建是否成功取决于用户在远程主机上的权限。
PUT,SEND file1 file2
复制file1指定的本地文件到file2指定的远程主机上。
PWD
打印工作目录。返回当前目录名。使用GetChunk方法返回数据。
QUIT
终止当前用户。
RENAME file1 file2
将file1中命名的远程文件重命名为file2中指定的新名称。成功与否取决于用户在远程主机上的权限。
RMDIR file1
删除目录。删除file1中指定的远程目录。成功与否取决于用户在远程主机上的权限。
SIZE file1
返回file1指定的目录的大小。
举个例子:
Inet1.Execute“",“dir"
debug.print Inet1.GetChunk这一句将打印出上一句dir的结果。
Inet1.Execute“",“Get file1 C:\File1"这个命令会把对方c:\File1的文件取到本机当前目录下(这里假设对方是windows base的机器,并且有c:\File1的文件)。
下面说说该控件唯一的事件StateChanged。
当这个FTP连接中状态发生了改变,如登录成功、命令接收成功、断线等等都会引发该事件。该事件的处理函数有一个参数state,表明当前连接状态,它的值定义如下:
值标识符意义
0 icNone无状态可报告。
1 icHostResolvingHost该控件正在查询所指定的主机的IP地址。
2 icHostResolved该控件已成功地找到所指定的主机的IP地址。
3 icConnecting该控件正在与主机连接。
4 icConnected该控件已与主机连接成功。
5 icRequesting该控件正在向主机发送请求。
6 icRequestSent该控件发送请求已成功。
7 icReceivingResponse该控件正在接收主机的响应。
8 icResponseReceived该控件已成功地接收到主机的响应。
9 icDisconnecting该控件正在解除与主机的连接。
10 icDisconnected该控件已成功地与主机解除了连接。
11 icError与主机通讯时出现了错误。
12 icResponseCompleted该请求已经完成,并且所有数据均已接收到。
用Select case语句处理各个状态就行了。
怎么样,是不是很简单呀,一个简单的FTP你只须建立连接,从用户读取命令,用Execute方法将命令传送到对方主机就可以了,剩下的活都有Inet控件帮你搞定,但是要作得好用,还要处理各种网络错误,用递归处理子目录上载或下载,为用户建立FTP服务器的地址簿等,这里不做更深一步讨论。
xjbx
2003-07-10
打赏
举报
回复
没人知道嚒?
利用 microsoft
internet
transfer
control 下载文件,并显示 html rtf text 类型的文件。(3KB)...
利用 microsoft
internet
transfer
control 下载文件,并显示 html rtf text 类型的文件。(3KB)
Win
Inet
_FTP_Class.zip_FtpEx_ftp
FTP Client using
win
inet
Example
vb网络编程
vb网络编程代码实例(网上聊天,邮件收发,WEB浏览器 等共14个实列)
VB FTP上传下载
'模板: Option Explicit Public Declare Function
Internet
Open Lib "
win
inet
.dll" Alias "
Internet
OpenA" _ (ByVal sAgent As String, ByVal LAccessType As Long, ByVal sProxyName As String, _ ByVal SProxyBypass As String, ByVal lFlags As Long) As Long Public Declare Function
Internet
Connect Lib "
win
inet
.dll" Alias "
Internet
ConnectA" _ (ByVal h
Internet
Session 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 Public Declare Function FtpGetFile Lib "
win
inet
.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 Declare Function FtpPutFile Lib "
win
inet
.dll" Alias "FtpPutFileA" _ (ByVal hFtpSession As Long, ByVal lpszLocalFile As String, _ ByVal lpszRemoteFile As String, ByVal dwFlags As Long, _ ByVal dwContext As Long) As Boolean Public Declare Function FtpDeleteFile Lib "
win
inet
.dll" Alias "FtpDeleteFileA" _ (ByVal hFtpSession As Long, ByVal lpszFileName As String) As Boolean Public Declare Function FtpRenameFile Lib "
win
inet
.dll" Alias "FtpRenameFileA" _ (ByVal hFtpSession As Long, ByVal lpszExsiting As String, ByVal lpszNew As String) As Boolean Public Declare Function
Internet
CloseHandle Lib "
win
inet
.dll" (ByVal h
Inet
As Long) As Integer Public Declare Function FtpFindFirstFile Lib "
win
inet
.dll" Alias "FtpFindFirstFileA" _ (ByVal hFtpSession As Long, ByVal lpszSearchFile As String, _ lpFindFileData As
WIN
32_FIND_DATA, ByVal dwFlags As Long, _ ByVal dwContent As Long) As Long Public Declare Function
Internet
FindNextFile Lib "
win
inet
.dll" Alias "
Internet
FindNextFileA" _ (ByVal hFind As Long, lpvFndData As
WIN
32_FIND_DATA) As Long Public Type FILETIME dwLowDateTime As Long dwHighDateTime As Long End Type Public Type
WIN
32_FIND_DATA dwFilAttributes As Long ftCreationTime As FILETIME ftLastAccessTime As FILETIME ftLastWriteTime As FILETIME nFileSizeHigh As Long nFileSizeLow As Long dwReserved0 As Long dwReserved1 As Long cFileName As String * 260 cAlternate As String * 14 End Type Public Declare Function GetOpenFileName Lib "comdlg32.dll" Alias _ "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long Type OPENFILENAME lStructSize As Long hwndOwner As Long hInstance As Long lpstrFilter As String lpstrCustomFilter As String nMaxCustFilter As Long nFilterIndex As Long lpstrFile As String nMaxFile As Long lpstrFileTitle As String nMaxFileTitle As Long lpstrInitialDir As String lpstrTitle As String flags As Long nFileOffset As Integer nFileExtension As Integer lpstrDefExt As String lCustData As Long lpfnHook As Long lpTemplateName As String End Type '窗体: Private Sub Command1_Click() 'FTP下载 lng
inet
=
Internet
Open(vbNullString,
INTERNET
_OPEN_TYPE_PRECONFIG, _ vbNullString, vbNullString, 0&) If lng
inet
Then lng
inet
conn =
Internet
Connect(lng
inet
, "219.131.192.243", 0, _ "posui", "djposui", 1, 0, 0) If lng
inet
conn Then blnRC = FtpGetFile(lng
inet
conn, "/load.txt", "c:\load.txt", 0, 0, 1, 0) If blnRC Then MsgBox "download ok!!!" End If
Internet
CloseHandle lng
inet
conn
Internet
CloseHandle lng
inet
MsgBox "close ok!!!" Else MsgBox "can't connect" End If Else MsgBox "ftp wrong" End If End Sub Private Sub Command2_Click() 'FTP上传 lng
inet
=
Internet
Open(vbNullString,
INTERNET
_OPEN_TYPE_PRECONFIG, _ vbNullString, vbNullString, 0&) If lng
inet
Then lng
inet
conn =
Internet
Connect(lng
inet
, "219.131.192.243", 0, _ "administrator", "vai8888", 1, 0, 0) If lng
inet
conn Then blnRC = FtpPutFile(lng
inet
conn, "c:\1.txt", "/1.txt", 0, 0) If blnRC Then MsgBox "download ok!!!" End If
Internet
CloseHandle lng
inet
conn
Internet
CloseHandle lng
inet
MsgBox "close ok!!!" Else MsgBox "can't connect" End If Else MsgBox "ftp wrong" End If End Sub 方法2: '部件
INET
Private Sub Command1_Click() Me.
Inet
1.Execute Me.
Inet
1.URL, "send c:\11.txt /1.txt" '保存 End Sub Private Sub Command2_Click() Me.
Inet
1.Execute Me.
Inet
1.URL, "get /2.txt c:\2.txt" '下载 End Sub
MFC-
Win
Inet
.rar_MFC FTP_ftp上传下载 mfc
程序能实现基本的FTP客户端功能,能登陆FTP服务器,显示登录客户目录下的文件和目录名,能从该目录中选择下载服务器的文件,也能向服务器上传文件。
VB基础类
7,785
社区成员
197,585
社区内容
发帖
与我相关
我的任务
VB基础类
VB 基础类
复制链接
扫一扫
分享
社区描述
VB 基础类
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章