搭建了WIN2016的服务器后,装了MMSQL2008的数据库,因为是远程数据库的原因,在导入大数据的时候,会很耗时,有可能导致超时。只好在服务器端搭建了FTP服务器,再在客户端上传数据文件到服务器,这样就相当在本地导入数据了。这文章就是用INET控件来实现。
服务器端设好FTP的帐号信息
我这边用的是宝塔的软件,直接装了FileZilla Server 0.9.41,安装完后,新建一个帐户,设好密码与共享的文件夹信息后,就可以通过ftp://ip地址来访问了
添加INET控件
新建VB,工程-部件,找到Microsoft Internet Transfer Control 6.0
,前面打勾即可,在窗体上放上一个inet控件。
上传配置代码
设置FTP的地址?协议类型?用户名?密码
Inet1.URL = xxx.xxx.xxx.xxx ‘FTP的地址
Inet1.Protocol = icFTP ‘协议类型
Inet1.username = 用户名 ‘FTP的用户名
Inet1.password = 密码 ‘FTP的密码
putfile = “put ” & Chr(34) & CommonDialog1.FileName & Chr(34) & ” ” & Chr(34) & CStr(GetFileName(CommonDialog1.FileName)) & Chr(34)
Inet1.Execute , putfile
Do While Inet1.StillExecuting
DoEvents
Loop
这里有个特别要注意的地方:就是如果上传的文件或保存的文件存在空格,那就会提示出错,一直只显示“已经接受主机的响应”,说明文件没有传到,一定要在文件路径下名称前加上chr(34)
上面的Put后面的东西,是因为我的VB里是用了对话框控件来选择要上传的文件。
上传状态显示
Private Sub Inet1_StateChanged(ByVal State As Integer)
Dim temp As String
Select Case State
Case icNone
Case icResolvingHost
temp = “正在查找”
Case icHostResolved
temp = “已找到IP地址”
Case icConnecting
temp = “正在连接。。。。”
Case icConnected
temp = “连接成功”
Case icRequesting
temp = “正在发送请求。。。。”
Case icRequestSent
temp = “发送请求成功”
Case icReceivingResponse
temp = “正在接受 主机的响应”
Case icResponseReceived
temp = “已经接受主机的响应”
Case icDisconnecting
temp = “正在解除与主机的连接。。。”
Case icDisconnected
temp = “已解除与主机的连接。”
Case icError
temp = Inet1.ResponseCode & Inet1.ResponseInfo
Case icResponseCompleted
temp = “已经接收到数据”
End Select
Label3.Caption = temp
End Sub