Private Sub Command1_Click()Dim IP As String
IP = Winsock1.LocalIPInet1.Protocol = icFTP
Inet1.RemoteHost = "tete1030.9999mb.com" '服务器地址
Inet1.RemotePort = 21 'FTP端口
Inet1.UserName = "123" '用户名
Inet1.Password = "123" '密码
Dim ri As Long
Inet1.Execute "", "MkDir " & IP  '在FTP服务器上建立以本机IP为名的文件夹
ri = Inet1.StillExecuting
Do While ri
ri = Inet1.StillExecuting
DoEvents
Loop
MsgBox "新建文件夹完成"
Inet1.Execute "", "PUT C:\jc.txt " & IP & "/jc.txt"  '上传文件
ri = Inet1.StillExecuting
Do While ri
ri = Inet1.StillExecuting
DoEvents
Loop
MsgBox "上传完成"
End Sub这是我的一个小程序,主要就是在ftp://tete1030.9999mb.com服务器上上传文件,第一步是建立一个以本机IP为名的文件夹,然后再在这个文件夹里上传C盘的jc.txt文件,可是我试验了好几次,本来有内容的jc.txt到了服务器里虽然有这个文件,但里面的内容却一点也没有了(MsgBox "上传完成"出现过了,并且是在MsgBox "新建文件夹完成"出现以后过一段时间才出来的),无论是从HTTP查看还是从FTP下载,都看不见任何内容。后来我在自己电脑上架设了个FTP服务器,上传到自己的FTP上,发现文件夹和文件都很正常,内容完整,这是怎么回事啊???求教各位大侠会不会是上传到别人的服务器时间长,还没传完就结束了,而自己服务器上传时间短,才那么完整?

解决方案 »

  1.   

    Do While ri
    ri = Inet1.StillExecuting
    DoEvents
    Loop
    也去掉
      

  2.   

    With Inet
            .URL = "ftp://www.***.com"
            .UserName = "***"
            .Password = "***"
            .Protocol = icFTP
            .RequestTimeout = 120
            
            .Execute , "PUT """ & App.Path & "\" & gc_strRarFileName & ".rar""" & " " & "\XinZi\" & gc_strRarFileName & ".rar"
            
            Do While .StillExecuting
                DoEvents
            Loop
            
        End With
        
        MsgBox "数据上传完毕!", vbOKOnly + vbExclamation, g_strTitle
    先用最简单代码实现
    偶这段测试成功
      

  3.   

    估计是你在运行这段代码的时候 由于doevents的存在 执行了类似的操作 造成文件上传的中断
    建议你这样试试:
    Private Sub Command1_Click()
      Me.Enabled = False
    ...
      Me.Enabled = True
    End Sub