首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VB6文件上传错误

VB6文件上传错误
EN

Stack Overflow用户
提问于 2016-07-25 14:12:49
回答 1查看 1.7K关注 0票数 0

我正在开发一个项目,在该项目中,它需要通过VB6与三菱VB6数控系统(一个FTP服务器)进行通信。虽然我与它的初始通信是成功的,但当我试图上传或下载文件到它时,会发生以下错误:

代码语言:javascript
复制
Error 120003

200 Type set to I
200 Port command successful
500 Cannot Copy file/Directory. Permission Denied.

我能够手动复制和粘贴文件夹中的文件。但是当我试图通过VB做同样的事情时,它就会显示出错误。

我的项目VB exe安装在与我的FTP服务器相同的PC上。

我的代码如下

代码语言:javascript
复制
Option Explicit

Private m_GettingDir As Boolean
Private Sub AddMessage(ByVal msg As String)
    txtResults.Text = txtResults.Text & vbCrLf & msg
    txtResults.SelStart = Len(txtResults.Text)
End Sub



Private Sub cmdUpload_Click()
Dim host_name As String
Dim CMD2 As String

    Enabled = False
    MousePointer = vbHourglass
    txtResults.Text = "Working"
    txtResults.SelStart = Len(txtResults.Text)
    DoEvents

   ' You must set the URL before the user name and
   ' password. Otherwise the control cannot verify
   ' the user name and password and you get the error:
   '
   '       Unable to connect to remote host

   inetFTP.URL = "ftp://Administrator:CNC@NCExplorer:8080/(192,168,1,101)/"
   inetFTP.UserName = "Administrator"
   inetFTP.Password = "CNC"



   ' This is the path where Remote File is to be Copied


    CMD2 =   "ftp://Administrator:CNC@NCExplorer:8080/(192,168,1,101)/CNC%20MEMORY/PRG/USER/NEW_test.txt"

    'Is the syntax  of Remote file  path  Correct? I dont want to copy the   file in Home directory 

    '  Execution 

     inetFTP.Execute , "PUT C:\TEST.TXT CMD2"



  '    m_GettingDir = True
   '    inetFTP.Execute , "Dir"
  End Sub
Private Sub inetFTP_StateChanged(ByVal State As Integer)
    Select Case State
        Case icError
            AddMessage "Error: " & _
                "    " & inetFTP.ResponseCode & vbCrLf & _
               "    " & inetFTP.ResponseInfo
        Case icNone
            AddMessage "None"
        Case icConnecting
            AddMessage "Connecting"
        Case icConnected
            AddMessage "Connected"
        Case icDisconnecting
            AddMessage "Disconnecting"
        Case icDisconnected
            AddMessage "Disconnected"
        Case icRequestSent
            AddMessage "Request Sent"
        Case icRequesting
            AddMessage "Requesting"
        Case icReceivingResponse
            AddMessage "Receiving Response"
        Case icRequestSent
            AddMessage "Request Sent"
        Case icResponseReceived
            AddMessage "Response Received"
        Case icResolvingHost
            AddMessage "Resolving Host"
        Case icHostResolved
            AddMessage "Host Resolved"

        Case icResponseCompleted
            AddMessage inetFTP.ResponseInfo

        If m_GettingDir Then
            Dim txt As String
           Dim chunk As Variant
           m_GettingDir = False

             'Get the first chunk.
           chunk = inetFTP.GetChunk(1024, icString)
           DoEvents
            Do While Len(chunk) < 0
                txt = txt & chunk
                chunk = inetFTP.GetChunk(1024, icString)
                DoEvents
            Loop

         '  AddMessage "----------"
            AddMessage txt
        End If

   Case Else
        AddMessage "State = " & Format$(State)
End Select

Enabled = True
MousePointer = vbDefault
End Sub
EN

回答 1

Stack Overflow用户

发布于 2016-07-25 21:44:27

你并没有给ftp一个机会去看最终的位置。从字面上看,这个位置是CMD2

尝试将目标字符串连接到命令

更改如下:

代码语言:javascript
复制
inetFTP.Execute , "PUT C:\TEST.TXT CMD2"

到此

代码语言:javascript
复制
inetFTP.Execute , "PUT C:\TEST.TXT " & CMD2
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38570104

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档