Fehlermeldung das eine Variable nicht definiert ist.

  • Hallo,

    ich habe das FTP-Upload Programm von Leviathan genommen und etwas angepasst, jetzt erscheint allerdings die Meldung das $file nicht deklariert ist.
    Bitte Info wo der Fehler liegt.
    Mußte es etwas anpassen weil mit der FTP.au3 lassen sich keine Dateien auf die Maschine mit FTP-Server übertragen, funktioniert aucht nicht mit Filezilla, nur mit der ftp.exe von Microsoft.
    Upload funktioniert, nur die Fehlermeldung stört mich.

    Spoiler anzeigen
    • Offizieller Beitrag

    Hallo,

    einfach $file am Anfang des Scripts deklarieren dann sollte der Fehler weg sein, der Fehler kommt weil $file erst in der Funktion _fileopendialog deklariert wird.

  • Ja, aber Leviathan hat das auch erst in der Funktion deklariert. Außerdem weiß ich nicht wie ich das machen soll das die Funktion $file ja den Dateiauswahl-Dialog öffnet, und das soll ja erst passieren wenn man auf den Button "Datei auswählen" drückt.

    • Offizieller Beitrag

    Ich sagte ja auch deklarieren und nicht Wert zuweisen!


    Spoiler anzeigen
    [autoit]

    ; ------------------------------------------------------------------------------
    ;
    ;
    ; Language: Deutsch
    ; Platform: Win2k / XP
    ; Author: Leviathan
    ;
    ; Script Function: Ftp-Upload-Tool --> Can handle multifile-upload
    ;
    ; ------------------------------------------------------------------------------
    Global $server = 'IP-Adresse'
    Global $username = 'user'
    Global $pass = 'kennwort'
    Global $file

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

    #include <Process.au3>
    #include <GUIConstants.au3>
    #include <File.au3>

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

    $maingui = GUICreate("FileUploader für die BES-Maschine", 500, 210, 193, 115)
    $choosefilelabel = GUICtrlCreateLabel("Datei wählen:", 8, 40, 100, 17)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $fileinput = GUICtrlCreateInput("", 160, 40, 233, 17)
    $butt_open = GUICtrlCreateButton("Öffnen", 400, 40, 57, 17, 0)
    $filenameonserverlabel = GUICtrlCreateLabel("Dateiname auf der Maschine:", 8, 72, 150, 17)
    $filename = GUICtrlCreateInput("", 160, 72, 233, 17)
    $butt_upload = GUICtrlCreateButton("Hochladen", 400, 72, 73, 17, 0)
    $your_link = GUICtrlCreateInput("", 160, 160, 233, 17)
    GUICtrlCreateLabel("your link:", 8, 160, 46, 17)
    GUISetState(@SW_SHOW)

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

    While 1
    $msg = GUIGetMsg(1)
    If $msg[0] = $GUI_EVENT_CLOSE AND $msg[1] =$maingui Then Exit
    IF $msg[0] = $butt_open AND $msg[1] = $maingui Then _fileopendialog()
    If $msg[0] = $butt_upload AND $msg[1] = $maingui Then _buttonupload()
    WEnd

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

    Func _fileopendialog()
    ;Global $file = FileOpenDialog("Datei auswählen", @MyDocumentsDir, "TXT (*.txt)", 7)
    $file = FileOpenDialog("Datei auswählen", "E:\", "TXT (*.txt)", 7)
    $multifile = StringInStr($file, "|")
    If $multifile <> 0 then
    GUICtrlSetStyle($filename, $ES_READONLY)
    GUICtrlSetData($filename, "Mehrere Dateien hochladen")
    Global $multifile = 1
    Else
    Global $multifile = 0
    GUICtrlSetData($fileinput, $file)
    EndIf
    EndFunc ;=> _fileopendialog

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

    Func _buttonupload()
    If $multifile = 1 then
    $multifile = StringSplit($file, "|")
    $link=""
    For $i = 1 To $multifile[0]
    $UPLOADFILE=$multifile[$i]
    $fnos = StringSplit($multifile[$i], "\")
    $FTPFILENAME = $fnos[$fnos[0]]
    $Open = _FTPOpen('Dateien hochladen')
    $Conn = _FTPConnect($Open, $server, $username, $pass)
    $Ftpp = _FtpPutFile($Conn, $UPLOADFILE, $FTPFILENAME)
    $Ftpc = _FTPClose($Open)
    $link = $link & "172.16.140.175/h0/bes3g/DATEN/tab/"&$FTPFILENAME&" |"
    Next
    $link = StringTrimRight($link, 2)
    GUICtrlSetData($your_link, $link)
    Beep(767, 50)
    GUICtrlSetStyle($filename, $GUI_SS_DEFAULT_INPUT)
    GUICtrlSetData($filename, "")
    Msgbox(1,"Achtung","Upload beendet!")
    Else
    If $multifile = 0 then
    $fn = guictrlread($filename)
    If $fn = "" Then
    $fnos = StringSplit($file, "\")
    $k = $fnos[0]
    $FTPFILENAME = $fnos[$k]
    ;Msgbox(1,"34", $FTPFILENAME) ;test
    GUICtrlSetData($filename, $FTPFILENAME)
    Else
    $FTPFILENAME = $fn
    EndIf
    GUICtrlSetStyle($filenameonserverlabel, -1)
    GUICtrlSetData($filenameonserverlabel, "")
    $UPLOADFILE = $file
    $fnos = StringSplit($file, "\")
    $Open = _FTPOpen('Was hier steht ist egal')
    $Conn = _FTPConnect($Open, $server, $username, $pass)
    $Ftpp = _FtpPutFile($Conn, $UPLOADFILE, $FTPFILENAME)
    $Ftpc = _FTPClose($Open)
    $link = "172.16.140.175/h0/bes3g/DATEN/tab/"&$FTPFILENAME
    GUICtrlSetData($your_link, $link)
    Msgbox(1,"Achtung","Upload beendet!")
    GUICtrlSetData($fileinput, "")
    GUICtrlSetData($filename, "")
    EndIf
    EndIf
    GUICtrlSetStyle($filename, -1)
    GUICtrlSetData($filename, "")
    EndFunc

    [/autoit]