FTPGetFile im Script funktioniert nicht

  • Hi,


    in diesem Script soll, wenn auf den Button Connect geklickt wird, eine Testdatei auf den FTP server hochgeladen werden. Anschließend soll die index.php direkt in einen Ordner kopiert werden.

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <FTP_EX.au3>
    #include <Array.au3>

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 625, 647, 702, 271)
    $Label1 = GUICtrlCreateLabel("Server - Configuration", 8, 8, 106, 17)
    $ServeradresseIN = GUICtrlCreateInput("", 104, 32, 105, 21)
    $PasswortIN = GUICtrlCreateInput("", 104, 56, 105, 21)
    $BenutzernameIN = GUICtrlCreateInput("", 104, 80, 105, 21)
    $Label2 = GUICtrlCreateLabel("Passwort:", 24, 56, 50, 17)
    $Label3 = GUICtrlCreateLabel("Benutzername:", 24, 80, 75, 17)
    $Label4 = GUICtrlCreateLabel("Serveradresse:", 24, 32, 75, 17)
    $Edit = GUICtrlCreateEdit("", 8, 168, 585, 401)
    GUICtrlSetData(-1, "")
    $OpenFile = GUICtrlCreateButton("Open File", 256, 104, 113, 25, 0)
    $Upload = GUICtrlCreateButton("Upload", 208, 592, 97, 25, 0)
    $Connect = GUICtrlCreateButton("Connect", 248, 16, 97, 33, 0)
    $Disconnect = GUICtrlCreateButton("Disconnect", 360, 16, 97, 33, 0)
    $DatenLaden = GUICtrlCreateButton("Daten Laden", 128, 120, 81, 17, 0)
    $Speichern = GUICtrlCreateButton("Daten Speichern", 40, 120, 81, 17, 0)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $OpenFile
    DirCreate(@ScriptDir & "\temp")
    Case $ServeradresseIN
    $server = GUICtrlRead($ServeradresseIN)
    if $server = "" then Msgbox(1,"Error","Bitte eine Serveradresse angeben!")
    Case $PasswortIN
    $pass = GUICtrlRead($PasswortIN)
    if $pass = ""Then Msgbox(1,"Error","Bitte geben Sie das Passwort ein!")
    Case $BenutzernameIN
    $username = GUICtrlRead($BenutzernameIN)
    if $username = "" Then Msgbox(1,"Error","Bitte geben Sie den Benutzernamen ein!")
    Case $Connect
    DirCreate(@ScriptDir & "\temp")
    $server = GUICtrlRead($ServeradresseIN)
    $pass = GUICtrlRead($PasswortIN)
    $username = GUICtrlRead($BenutzernameIN)

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

    $Hand = _FTPOpen('Doesnt Matter')
    $Ftpc = _FTPConnect($Hand, $server, $username, $pass)
    if @error then
    msgbox(0,"Error","Connect Error")
    Exit
    EndIf
    $Ftpp = _FtpPutFile($Ftpc, 'C:\Users\Johannes\TESTDATEI.txt', '/TESTDATEI.txt')
    $Ftpg = _FTPGetFile($Hand, "/index.php", @ScriptDir & "\temp\index.php")
    Case $Disconnect
    MsgBox(64,"Eingabe", $server)
    msgBox(64,"Eingabe", $pass)
    msgBox(64,"Eingabe", $username)
    Case $Speichern
    $ininame = "\config.ini"
    $server = GUICtrlRead($ServeradresseIN)
    $pass = GUICtrlRead($PasswortIN)
    $username = GUICtrlRead($BenutzernameIN)
    IniWrite(@ScriptDir & $ininame,"ServerConfig", "server: ", $server)
    IniWrite(@ScriptDir & $ininame,"ServerConfig", "user: ", $username)
    IniWrite(@ScriptDir & $ininame,"ServerConfig", "pass: ", $pass)
    Case $DatenLaden
    $var = IniReadSection(@ScriptDir & "\config.ini", "ServerConfig")
    If @error Then
    MsgBox(4096, "", "Error occured, probably no INI file.")
    Else
    For $i = 1 To $var[0][0]
    GUICtrlSetData($ServeradresseIN, $var [1] [1] )
    GUICtrlSetData($BenutzernameIN, $var [2] [1] )
    GUICtrlSetData($PasswortIN, $var [3] [1] )

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

    Next
    EndIf
    EndSwitch
    WEnd

    [/autoit]


    Mein Problem liegt darin, das sich die exe immer aufhängt -.-

    Vielen Dank schonmal ....

    PS: Der Fehler muss wohl bei:

    [autoit]

    $Ftpg = _FTPGetFile($Hand, "/index.php", @ScriptDir & "\temp\index.php")

    [/autoit]

    ... liegen, da es ohne diese funktion wohl funktioniert.

    Einmal editiert, zuletzt von Johannes (5. Oktober 2008 um 15:10)

  • Okej thx du meinst statt:

    [autoit]


    $Ftpg = _FTPGetFile($Hand, "/index.php", @ScriptDir & "\temp\index.php")

    [/autoit]

    so:

    [autoit]


    $Ftpg = _FTPGetFile($Ftcp, "/index.php", @ScriptDir & "\temp\index.php")

    [/autoit]


    Funktioniert leider immer noch nicht.


    PS: Kann es sein, dass man wenn man _FTPConnect gemacht hat, auch am Schluss _FTPClose machen muss?

    Einmal editiert, zuletzt von Johannes (5. Oktober 2008 um 18:12)