_Ftp_FilePut Problem ...

  • Hallo,

    ich habe wieder das Problem, dass er eine Datei nicht hochläd, obwohl die Pfade stimmen.

    Kann mir mal jemand sagen, woran es liegt? Hier mal mein Script :

    Spoiler anzeigen
    [autoit]


    #RequireAdmin
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #Include <FTPEx.au3>
    #include <GUIConstantsEx.au3>
    #include <File.au3>
    #include <WindowsConstants.au3>
    $GUI = GUICreate("FTP Chat", 537, 383, 185, 124)
    $Chatbox = GUICtrlCreateEdit("", 8, 8, 513, 329, BitOR($ES_READONLY,$ES_WANTRETURN))
    $senden = GUICtrlCreateButton("senden", 456, 352, 75, 25)
    $YourMessage = GUICtrlCreateInput("", 8, 352, 441, 21)
    GUISetState(@SW_SHOW)
    $OpenFTP = _Ftp_Open('Sitzung1')
    If @Error Then
    MsgBox(64,"Fehler","Fehler beim Öffnen einer Sitzung mit dem FTP Server")
    EndIf
    $Servername = '' ; Hier würde normalerweise mein vollständiger Servername stehen.
    $Benutzername = '' ; Hier würde normalerweise mein Benutzername stehen.
    $Passwort = '' ; Hier würde normalerweise mein Passwort stehen.
    $FtpConnect = _FTP_Connect($OpenFtp,$Servername,$Benutzername,$Passwort)
    If @Error Then
    MsgBox(64,"Fehler","Fehler beim Verbinden mit dem FTP Server")
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    _FTP_Close($OpenFtp)
    Exit
    Case $senden
    $OpenFile = FileOpen ("Message1.txt",2)
    If @Error Then
    MsgBox(64,"Fehler","Fehler beim Erstellen der Datei auf dem FTP Server")
    EndIf
    $Write = FileWrite($OpenFile,GuiCtrlRead($YourMessage))
    GuiCtrlSetData($YourMessage,"")
    _FTP_FilePut($FTPConnect,'C:\Users\User\Desktop\Md5 Generator\Message1.txt','/FTPTestfiles/Message.txt')
    If @Error Then
    MsgBox(64,"Fehler","Fehler beim Hochladen der Textdatei")
    EndIf
    EndSwitch
    WEnd

    [/autoit]
  • Ich kann jetzt so nicht direkt sagen an was dass es liegt, aber versuch doch mal bei FileOpen den kompletten Pfad anzugeben. Sonst sollte es nach mir gehen.

    Gruss Shadowigor

  • Ich weiß zwar nicht, wieso es nicht geklappt hat, aber ich habe nun bissl was aus der Hilfe geklaut.
    Nun habe ich das Problem, dass er eine Textdatei vom FTP Server nicht richtig ausliest und immer nur x0656 zurückgibt.

    Script :

    Spoiler anzeigen
    [autoit]


    #RequireAdmin
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #Include <FTPEx.au3>
    #include <GUIConstantsEx.au3
    #include <File.au3>
    #include <File.au3>
    #include <Array.au3>
    #include <GuiEdit.au3>
    #include <WindowsConstants.au3>
    $GUI = GUICreate("FTP Chat", 537, 383, 185, 124)
    $Chatbox = GUICtrlCreateEdit("", 8, 8, 513, 329, BitOR($ES_READONLY,$ES_WANTRETURN))
    $senden = GUICtrlCreateButton("senden", 456, 352, 75, 25)
    $YourMessage = GUICtrlCreateInput("", 8, 352, 441, 21)
    GUISetState(@SW_SHOW)
    $OpenFTP = _Ftp_Open('Sitzung1')
    If @Error Then
    MsgBox(64,"Fehler","Fehler beim Öffnen einer Sitzung mit dem FTP Server")
    EndIf
    $Servername = '' ; Hier würde normalerweise mein vollständiger Servername stehen.
    $Benutzername = '' ; Hier würde normalerweise mein Benutzername stehen.
    $Passwort = '' ; Hier würde normalerweise mein Passwort stehen.
    $FtpConnect = _FTP_Connect($OpenFtp,$Servername,$Benutzername,$Passwort,0)
    If @Error Then
    MsgBox(64,"Fehler","Fehler beim Verbinden mit dem FTP Server")
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    _FTP_Close($FTPConnect)
    Exit
    Case $senden
    $OpenFile = FileOpen ("Message1.txt",2)
    If @Error Then
    MsgBox(64,"Fehler","Fehler beim Erstellen der Datei auf dem FTP Server")
    EndIf
    $Write = FileWrite($OpenFile,GuiCtrlRead($YourMessage))
    If @Error Then
    MsgBox(64,"Fehler","Fehler beim Schreiben in die Textdatei")
    EndIf
    _GuiCtrlEdit_AppendText($Chatbox,"Du : " & GuiCtrlRead($YourMessage) & @CRLF)
    GuiCtrlSetData($YourMessage,"")
    If @Error Then
    MsgBox(64,"Fehler","Fehler beim Setzen des Inputs")
    EndIf
    _FTP_FilePut($FTPConnect,@ScriptDir & "\Message2.txt","_homo.txt")
    If @Error Then
    MsgBox(64,"Fehler","Fehler beim Hochladen der Textdatei")
    EndIf
    $OpenFTPFile = _FTP_FileOpen($FTPConnect,"_homo.txt")
    If @Error Then
    MsgBox(64,"Fehler","Fehler Datei nicht gefunden")
    EndIf
    $Read = _FTP_FileRead($OpenFTPFile,1000000000)
    MsgBox(64,"Inhalt",$Read)
    If @Error Then
    MsgBox(64,"Fehler","Fehler beim Lesen der Datei")
    EndIf
    EndSwitch
    WEnd

    [/autoit]


    Was habe ich denn falsch gemacht?

  • Hab dein Script mal etwas aufgeräumt, jetzt musste nurnoch die Fehler immer auswerten und dann weißte wo der Fehler liegt ;)

    Spoiler anzeigen
    [autoit]


    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiEdit.au3>
    #RequireAdmin
    $GUI = GUICreate("FTP Chat", 537, 383, 185, 124)
    $Chatbox = GUICtrlCreateEdit("", 8, 8, 513, 329, BitOR($ES_READONLY,$ES_WANTRETURN))
    $senden = GUICtrlCreateButton("senden", 456, 352, 75, 25)
    $YourMessage = GUICtrlCreateInput("", 8, 352, 441, 21)
    GUISetState(@SW_SHOW)
    $OpenFTP = _Ftp_Open('Sitzung1')
    If @Error Then MsgBox(64,"Fehler","Fehler beim Öffnen einer Sitzung mit dem FTP Server")
    $Servername = '' ; Hier würde normalerweise mein vollständiger Servername stehen.
    $Benutzername = '' ; Hier würde normalerweise mein Benutzername stehen.
    $Passwort = '' ; Hier würde normalerweise mein Passwort stehen.
    _DebugToConsole('Verbinden zum FTP Server')
    Global $FtpConnect = _FTP_Connect($OpenFtp,$Servername,$Benutzername,$Passwort,0)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    _FTP_Close($FTPConnect)
    Exit
    Case $senden
    _DebugToConsole('Öffne Message1.txt')
    $OpenFile = FileOpen ("Message1.txt",2)

    [/autoit] [autoit][/autoit] [autoit]

    _DebugToConsole('schreibe Text in Message1.txt')
    $Write = FileWrite($OpenFile,GuiCtrlRead($YourMessage))

    [/autoit] [autoit][/autoit] [autoit]

    _DebugToConsole('setzte InputBox und EditBox')
    _GuiCtrlEdit_AppendText($Chatbox,"Du : " & GuiCtrlRead($YourMessage) & @CRLF)
    GuiCtrlSetData($YourMessage,"")

    [/autoit] [autoit][/autoit] [autoit]

    _DebugToConsole('Upload Datei auf FTP')
    _FTP_FilePut($FTPConnect,@ScriptDir & "\Message2.txt","_homo.txt")

    [/autoit] [autoit][/autoit] [autoit]

    _DebugToConsole('Open Handle to _homo.txt')
    $OpenFTPFile = _FTP_FileOpen($FTPConnect,"_homo.txt")

    [/autoit] [autoit][/autoit] [autoit]

    _DebugToConsole('Read Handle of _homo.txt')
    $Read = _FTP_FileRead($OpenFTPFile,1024)

    [/autoit] [autoit][/autoit] [autoit]

    _DebugToConsole('Inhalt aus TXTDATEI: '&$Read )
    EndSwitch
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _DebugToConsole($sString)
    ConsoleWrite('>>DEBUG: '&$sString&' >> ERROR: '&@error&@CRLF)
    EndFunc

    [/autoit]


    Gruß Marvin

  • [autoit]

    _FTP_FilePut($FTPConnect,@ScriptDir & "\Message2.txt","_homo.txt",$INTERNET_FLAG_TRANSFER_ASCII )
    _FTP_Close($OpenFTP )

    [/autoit]

    dann funz es bei mir :)