FTP-Upload "freezt" Script ?

  • Hallo,

    da ich zu diesem Thema nicht gefunden habe, frag' ich einfach mal selber:

    Wieso haakt(?) mein Script wenn es die Datei hochlädt?

    Zur Vorgeschichte:

    Der Code
    [autoit]

    #include <FTPEx.au3>
    #include <Misc.au3>

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

    $datei_pfad = FileOpenDialog("Datei auswählen", "", "Alle (*.*)|Ausführbare (*.exe)")

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

    For $i = 1 To StringLen($datei_pfad)
    $stringright = StringRight($datei_pfad, $i)
    $stringtrim = StringTrimRight($stringright, $i - 1)
    If $stringtrim = "\" Then
    $file_name_rew = $stringright
    ExitLoop
    EndIf
    Next

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

    $file_name = StringTrimLeft($file_name_rew,1)

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

    MsgBox(262144,'Debug line ~' & @ScriptLineNumber,'Selection:' & @lf & '$file_name' & @lf & @lf & 'Return:' & @lf & $file_name) ;### Debug MSGBOX

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

    $ftpopen = _Ftp_open("myftp")

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

    $ftpconnect = _FTP_Connect($ftpopen, 'test.te.funpic.de', "blabla", "(warum liest du das? Dieser Server existiert sowieso nicht...)")

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

    _ftp_fileput($ftpconnect,$datei_pfad,$file_name)

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

    _ftp_close($ftpopen)

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

    _ftp_close($ftpconnect)

    [/autoit]

    Und bis vor kurzem (gestern Morgen) ging's noch supi...

    Danke schonmal im Vorraus,

    5 Mal editiert, zuletzt von Emperormatem (2. April 2011 um 21:32)

  • Alle Befehle liefern einen Wert bzw. @error zurück. Also solltest das mal auswerten.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Es ging mir nicht darum, dass irgendein @error ausgegeben wird sondern darum, dass mein Script genauso wie es war schonmal funktionierte, nur jetzt eben nichtmehr... Trotzdem danke, einen Versuch ist's ja immer wert :D

    €dit : ich kann ja mal den Server sagen: ftp://matem360.ma.funpic.de/ ...

    LG,

  • Nun dann pack eine Glaskugel mit rein wenn du nicht sagen willst was @error ect. zurückliefert.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Ich dachte, dass jemand ähnliche Probleme hat und mir Lösungsvorschläge geben könnte...

    Einmal editiert, zuletzt von Emperormatem (17. März 2011 um 22:04)

  • Wieso haakt(?) mein Script wenn es die Datei hochlädt?


    Was verstehst du unter haakt? Wird die Datei nicht hochgeladen oder kannst du in deinem Hauptskript nichts machen (was mich die Überschrift vermten lässt) bis der UpLoad durch ist? Das 2. wäre dann autoit spezifisch zu erklären, da nicht mltithreading fähig, und tritt je nach Dateigrösse und zur Zeit verfügbarer INet-Bandbreite mal stärker und mal schwächer in Erscheinng,

    mfg autoBert

  • Das Script lädt die Datei nicht hoch und es freezt (Ich nichts machen und kann es nur mit alt+pause schließen).

  • Hallo Emperatorman,

    ich in dein Skript Errorhandling mit Debugmöglichkeit eingebaut:

    [autoit]

    #include <FTPEx.au3>
    #include <Misc.au3>

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

    $sServer = 'test.te.funpic.de'
    $sUser = "blabla"
    $sPwd = '(warum liest du das? Dieser Server existiert sowieso nicht...)'

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

    $datei_pfad = FileOpenDialog("Datei auswählen", "", "Alle (*.*)|Ausführbare (*.exe)")

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

    For $i = 1 To StringLen($datei_pfad)
    $stringright = StringRight($datei_pfad, $i)
    $stringtrim = StringTrimRight($stringright, $i - 1)
    If $stringtrim = "\" Then
    $file_name_rew = $stringright
    ExitLoop
    EndIf
    Next

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

    $file_name = StringTrimLeft($file_name_rew, 1)
    ConsoleWrite($file_name & @CRLF)

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

    $bDebug = True

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

    ConsoleWrite("Try to open " & @TAB)
    $ftpopen = _FTP_Open("myftp")
    If Not @error Then
    If $bDebug Then ConsoleWrite("OK" & @CRLF)
    ConsoleWrite("Try to Connect " & @TAB)
    $ftpconnect = _FTP_Connect($ftpopen, $sServer, $sUser, $sPwd)
    If Not @error Then
    If $bDebug Then ConsoleWrite("OK" & @CRLF)
    ConsoleWrite("Try to upload " & $file_name_rew & " " & $file_name & @TAB)
    If Not @error Then
    If $bDebug Then ConsoleWrite("OK" & @CRLF)

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

    _FTP_FilePut($ftpconnect, $datei_pfad, $file_name)
    _FTP_Close($ftpopen)
    Else
    If $bDebug Then ConsoleWrite("Failed" & @CRLF)
    EndIf
    Else
    If $bDebug Then ConsoleWrite("Failed" & @CRLF)
    EndIf
    Else
    If $bDebug Then ConsoleWrite("Failed" & @CRLF)
    EndIf

    [/autoit]

    und danach mit einem Account und den dazugehörigen von mir bei bplaced getestet, es lief einwandfrei:

    Code
    Try to open 	OK
    Try to Connect 	OK
    Try to upload \asdfgh.au3 asdfgh.au3	OK
    +>19:42:32 AutoIT3.exe ended.rc:0

    tese doch einfach einmal dieses Skript

    mfg autoBert

  • Es hat zwar alles geklappt, die Konslole hat auch alles "OK"t, aber die datei wurde nicht "geuploaded"...

    Danke trotzdem für die Hilfe :D

  • Hallo Emperormatem,

    im Skript hat sich leider ein Fehler eingeschlichen, so dass das letzte OK nicht unbedingt stimmte. Deshalb noch einmal korrigiert und erweitert um anschliessenden Donwload des Upgeloadeten Files und Anzeige des selben:

    Spoiler anzeigen
    [autoit]

    #include <FTPEx.au3>
    #include <Misc.au3>

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

    #include <FTPEx.au3>
    #include <Misc.au3>

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

    $sServer = 'test.te.funpic.de'
    $sUser = "blabla"
    $sPwd = '(warum liest du das? Dieser Server existiert sowieso nicht...)'

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

    $datei_pfad = FileOpenDialog("Datei auswählen", "", "Alle (*.*)|Ausführbare (*.exe)")

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

    $DLFile = @ScriptDir & "\ReadMeTest.txt"
    If FileExists($DLFile) Then FileDelete($DLFile)

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

    For $i = 1 To StringLen($datei_pfad)
    $stringright = StringRight($datei_pfad, $i)
    $stringtrim = StringTrimRight($stringright, $i - 1)
    If $stringtrim = "\" Then
    $file_name_rew = $stringright
    ExitLoop
    EndIf
    Next

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

    $file_name = StringTrimLeft($file_name_rew, 1)
    ConsoleWrite($file_name & @CRLF)

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

    $bDebug = True

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

    ConsoleWrite("Try to open " & @TAB)
    $ftpopen = _FTP_Open("myftp")
    If Not @error Then
    If $bDebug Then ConsoleWrite("OK" & @CRLF)
    ConsoleWrite("Try to Connect " & @TAB)
    $ftpconnect = _FTP_Connect($ftpopen, $sServer, $sUser, $sPwd)
    If Not @error Then
    If $bDebug Then ConsoleWrite("OK" & @CRLF)
    ConsoleWrite("Try to upload " & $file_name_rew & " " & $file_name & @TAB)

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

    _FTP_FilePut($ftpconnect, $datei_pfad, $file_name)
    If Not @error Then
    If $bDebug Then ConsoleWrite("OK" & @CRLF)
    ConsoleWrite("Try to download " & $file_name & " " & $DLFile & @TAB)
    _FTP_FileGet($ftpconnect, $file_name, $DLFile)
    If Not @error Then
    If $bDebug Then ConsoleWrite("OK" & @CRLF)
    ShellExecute($DLFile)
    Else
    If $bDebug Then ConsoleWrite("Failed" & @CRLF)
    EndIf
    Else
    If $bDebug Then ConsoleWrite("Failed" & @CRLF)
    EndIf
    Else
    If $bDebug Then ConsoleWrite("Failed" & @CRLF)
    EndIf
    Else
    If $bDebug Then ConsoleWrite("Failed" & @CRLF)
    EndIf
    _FTP_Close($ftpopen)

    [/autoit]
  • Alles Klappt bis zu fileput, dann freezt es und er loaded nur den Dateinamen mir 0-Bytes inhalt hoch (?!?)

    (Es kann aber auch manchmal sein, dass er die komplette Datei hochlädt... Wenn es an meiner I-net Verbindung liegt, weiß ich worin ich mein Geld später investiere... :D)

    Auf Antwort hoffend,

    11 Mal editiert, zuletzt von Emperormatem (16. April 2011 um 15:12)

  • (Es kann aber auch manchmal sein, dass er die komplette Datei hochlädt... Wenn es an meiner I-net Verbindung liegt, weiß ich worin ich mein Geld später investiere... :D)

    Da er es manchmal hochlädt ist die Funktionsfähigkei des Skriptes bewiessen. Internetstörungen sind dann die Ursache, ob diese an deinem Anschluss liegen oder an dem Anschluss des Servers kann ich nicht beurteilen,

    mfg autoBert

  • Sorry, ich habe mich geirrt! Es klappt nie komplett!

    Ich habe immer nur den Namen der Datei ohne Inhalt...

    Überlegend,

  • sorry aber bei mir lauft das script von autobert einwand frei

    wie prüft du denn die datei oder lädt du sie runter .Mit _FTP_FileGet bekomme ich nur text datein (.txt)heruntergeladen,alle anderen dateien sind null bytes datein

    Einmal editiert, zuletzt von sillyboy (17. April 2011 um 23:22)