2016-07-25 29 views
0

私は、VB6を介して三菱M70 CNC(FTPサーバー)と通信する必要があるプロジェクトを開発しています。私がアップロードしたり、それにファイルをダウンロードしようとすると、それとの私の最初の通信は、成功しているものの、次のエラーが発生します。FTPファイルVB6でアップロードエラー

Error 120003 

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

は私が手動でフォルダ内のファイルのコピーと貼り付けることができますよ。しかし、VBで同じことをしようとすると、エラーが表示されます。

MYプロジェクトVB exeは、私のFTPサーバーと同じPCにインストールされています。あなたがFTP cpommandに最終的な場所を見る機会を与えていない

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:[email protected]: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:[email protected]: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 

答えて

0

を次のように

私のコードです。この

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

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

:それはCMD2として文字通り

コマンドに先の文字列を連結してみ

変更この場所を取っています

関連する問題