Frage zu ftp upload

  • Hallo zusammen,

    ich suche verzweifelt eine Möglichkeit, um mehrere Dateien per ftp hochladen zu können.
    Unter Windows habe ich ja z.B. mittels "mput *.jpg" die Möglichkeit, alle jpg's des aktuellen
    Ordners hochzuladen.
    Gibt es einen analogen Befehl in AutoIt?
    Ich hab bis jetzt leider nichts gefunden.

    Viele Grüße
    Jörg

  • Ungefähr würde ich es so machen. Natürlich noch das ganze Verbindungszeugs davor ;)

    [autoit]


    $file=_FileListToArray('D:\EinPfad','*.jpg',1)
    For $n=1 to $file[0]
    _FTP_FilePut($session,'D:\EinPfad\''&$file[$n],$upload_name)
    Next

    [/autoit]
  • Wow - ans Array habe ich als Anti-Programmierer mal wieder nicht gedacht!
    Vielen lieben Dank!
    Jetzt brauch ich nur noch eine Fortschrittsanzeige und dann is mein Problemchen schon gelöst :)

  • Ein Nicht-Programmierer versteht schlicht und ergreifend viele Zusammenhänge nicht,
    die einem Programmierer klar sind :wacko:
    Du schreibst z.B.: "läßt sich ganz einfach berechnen" und fügst eine Codezeile ein.
    Ich weiß in dem Fall noch nicht einmal wo ich das einsetzen soll ;(

    Bis jetzt sieht der funktionierende Code so aus:

    Spoiler anzeigen
    [autoit]

    #Include <FTPEx.au3>
    #include <File.au3>
    #include <Array.au3>
    #include <Misc.au3>

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

    $FTPServer = "ftp.test.it"
    $FTPBenutzer = "username"
    $FTPPasswort = "passw"
    $FTPFolder = "/folder1/subfolder"
    $FTPSession = "mysession"

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

    $OPEN = _FTP_Open("MeinFTP")
    $CONN = _FTP_Connect($OPEN,$FTPServer,$FTPBenutzer,$FTPPasswort)

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

    _FTP_DirSetCurrent($CONN, $FTPFolder)

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

    $file=_FileListToArray(@ScriptDir,'*.jpg',1)
    For $n=1 to $file[0]
    _FTP_FilePut($CONN,@ScriptDir&"\" &$file[$n],$file[$n])
    Next
    _ArrayDisplay ($file)
    $Ftpc = _FTP_Close($OPEN)

    [/autoit]

    2 Mal editiert, zuletzt von Baruse (22. März 2012 um 16:40)

  • An welche Stelle muß nun der Code

    [autoit]

    GuictrlsetData($progress,$n/$file[0]*100)

    [/autoit]

    von letsgo rein?
    Muß dafür vorher/nachher noch irgendwas eingebunden werden?

    Danke schonmal für Eure Hilfe!

  • Dafür musst du erstmal ne Gui machen (am besten in der Hilfe schauen) und ne Progressbar machen.
    Das Guictrlsetdata musst du dann in der For-Scleife einfügen, dass sich die Prozent nach jeder Datei neu berechnen

    Hier mal ein Beispiel:

    [autoit]


    GuiCreate('Meine Gui',400,100) ;erstellt ein Fenster
    GuiSetState() ;macht das Fenster sichtbar
    $progress=GuictrlCreateprogress(10,75,380,20) ;Erstellt eine Progressanzeige auf dem Fenster auf Position 10 und 75 mit Länge 380 und Höhe 20

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