upload von einer Datei über FTP

  • Hi,
    ich versuche eine Datei per FTP hochzuladen.

    autoBert war mir schon eine große hilfe aber irgendwo klemmt es noch...

    [autoit]

    #region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_AU3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
    #endregion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #include <FTPEx.au3>
    #include <File.au3>
    #include <Array.au3>

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

    Opt('MustDeclareVars', 1)

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

    _example1()

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

    Func _example1()
    ;lädt eine Datei hoch
    Local $s_ServerName = 'ftpde' ;< ==== anpassen
    Local $s_Username = 'user' ;< ==== anpassen
    Local $s_Password = 'pw' ;< ==== anpassen

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

    Local $s_LocalFile = "D:\datei.xlsx" ;< ==== anpassen
    Local $s_RemoteFile = "/ordner/datei.xlsx" ;< ==== anpassen
    Local $i_Passive = 1 ; mit 0 und 1 getestet
    Local $l_InternetSession, $l_FTPSession, $errOpen, $errFTP

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

    ;$l_InternetSession = _FTP_Open('AuoItZilla') ;Öffnet eine FTP Sitzung
    $l_InternetSession = _FTP_Open('AuoItZilla',$INTERNET_OPEN_TYPE_PRECONFIG ) ;Öffnet eine FTP Sitzung
    $errOpen = @error
    If Not @error Then
    $l_FTPSession = _FTP_Connect($l_InternetSession, $s_ServerName, $s_Username, $s_Password, $i_Passive) ;Verbindet zu einem FTP Server
    $errFTP = @error
    If Not @error Then
    If _FTP_FilePut($l_FTPSession, $s_LocalFile, $s_RemoteFile) Then
    ConsoleWrite("Upload: erfolgreich" & @CRLF)
    Else
    ConsoleWrite("Upload: fehlgeschlagen " & " " & @error & @CRLF)
    EndIf
    Else
    MsgBox(0, "Connect", "fehlgeschlagen")
    ConsoleWrite("Connect: " & " " & $errFTP & @CRLF)
    EndIf
    Else
    MsgBox(0, "Open", "fehlgeschlagen")
    ConsoleWrite("Open " & " " & $errOpen & @CRLF)
    EndIf
    _FTP_Close($l_InternetSession) ;schliesst die FTP-Sitzung
    EndFunc ;==>_example1

    [/autoit]

    als fehler gibt es nur "open fehlgeschlagen" bzw.

    Code
    Open  -1

    hat jemand ne idee was das problem ist?

    Danke & Gruß

    Einmal editiert, zuletzt von Viperdriver2000 (11. Juli 2012 um 15:39)

  • Funktioniert bei mir (ftp.strato.de, Upload eine Textdatei) ohne Fehler !

    Zur Nutzung dieses Forum's, ist ein Übersetzer für folgende Begriffe unerlässlich:

    "On-Bort, weier, verscheiden, schädliges, Butten steyling, näckstet, Parr, Porblem, scripe, Kompletenz, harken, manuel zu extramieren, geckukt, würglich, excell, acces oder Compilevorgeng"

  • du hast das jetzt einfach übernommen !?
    nur die 5 variablen am anfang angepasst?
    :(

  • ich habe es jetzt nochmal von nem anderen PC in einem anderen Netzwerk getestet...
    gleicher fehler :(
    versteh ich nich...

  • Wie schon in dem anderen (von dir gekaperten) Thema angemerkt habe; ich vermute das die Verbindung über einen Proxy läuft Du musst also die verschiedenen Parameter (alle Kombinationen) zu

    [autoit]

    _FTP_Open(

    [/autoit]

    durchtesten. Eine andere Möglichkeit wäre noch, eine Firewalloder ein AV-Scanner hindert AutoIt daran ein FTP-Sitzung aufzubauen. Schaffst du es den über einen FTP-Client z.B.: FileZilla Daten hoch zu laden? Btw: welchen Webspaceanbieter hast du?

    mfg autoBert

  • wie gesagt habe es jetzt dann auf 3 pc versucht.
    einer davon war ohne router, firewall und virenscanner am netzt...
    aber auch da kein erfolg.
    ich habe es auch bei allen mit admin rechten versucht...

    auch habe ich folgende parameter versucht:

    [autoit]

    $l_InternetSession = _FTP_Open('MyFTP Control') ;Öffnet eine FTP Sitzung
    ;$l_InternetSession = _FTP_Open('AuoItZilla',$INTERNET_OPEN_TYPE_DIRECT ) ;Öffnet eine FTP Sitzung
    ;$l_InternetSession = _FTP_Open('AuoItZilla',$INTERNET_OPEN_TYPE_PRECONFIG ) ;Öffnet eine FTP Sitzung
    ;$l_InternetSession = _FTP_Open('AuoItZilla',$INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY ) ;Öffnet eine FTP Sitzung
    ;$l_InternetSession = _FTP_Open('AuoItZilla',$INTERNET_OPEN_TYPE_PROXY ) ;Öffnet eine FTP Sitzung

    [/autoit]


    aber nix. immer die selbe Meldung... Oo

  • Hast Du auf den bereffenden Rechnern, mal eine Verbindung mit dem Windows-FTP-Client aus der Konsole heraus versucht ?

    Zur Nutzung dieses Forum's, ist ein Übersetzer für folgende Begriffe unerlässlich:

    "On-Bort, weier, verscheiden, schädliges, Butten steyling, näckstet, Parr, Porblem, scripe, Kompletenz, harken, manuel zu extramieren, geckukt, würglich, excell, acces oder Compilevorgeng"

  • ja klappt problemlos...

    Spoiler anzeigen

    irgendwie is das komisch...*seufz*


  • Das solltest Du in Deinem Script auch mal eintragen, wenn auf dem Server nicht der Standard-FTP-Port (21) benutzt wird.


    habe mich noch 2 mal verbunden und habe 2 mal nen anderen port angezeigt bekommen ;)
    also das sollte dann wohl was anderes sein.
    denke mal das es nur mit dem "ls" also dem verzeichnis listing zu tun hat...

    zeile 6 sagt ja:
    220-Local time is now 07:35. Server port: 21.

  • Da laut Wikipedia der PureFTPdServer SSL/TLS-Verschlüsselung unterstützt geh meine Vermutung jetzt dahin das es damit zusammenhängt. übrigens hast du nicht alle Parameter-Kombinationen durchgetestet sondern nur den Parameter $l_AccessType.

    mfg autoBert

  • ich habe es jetzt nochmal mit 2 anderen ftp servern versucht.
    bei allen kommt das gleiche ergebniss. oO

    welche habe ich denn vergessen?
    meinst du die flags?

    Spoiler anzeigen
    [autoit]

    $l_InternetSession = _FTP_Open('MyFTP Control') ;Öffnet eine FTP Sitzung
    ;$l_InternetSession = _FTP_Open('AuoItZilla',$INTERNET_OPEN_TYPE_DIRECT ) ;Öffnet eine FTP Sitzung
    ;$l_InternetSession = _FTP_Open('AuoItZilla',$INTERNET_OPEN_TYPE_PRECONFIG ) ;Öffnet eine FTP Sitzung
    ;$l_InternetSession = _FTP_Open('AuoItZilla',$INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY ) ;Öffnet eine FTP Sitzung
    ;$l_InternetSession = _FTP_Open('AuoItZilla',$INTERNET_OPEN_TYPE_PROXY ) ;Öffnet eine FTP Sitzung
    ;$l_InternetSession = _FTP_Open('MyFTP Control', $INTERNET_FLAG_ASYNC) ;Öffnet eine FTP Sitzung
    ;$l_InternetSession = _FTP_Open('AuoItZilla',$INTERNET_OPEN_TYPE_DIRECT, $INTERNET_FLAG_ASYNC ) ;Öffnet eine FTP Sitzung
    ;$l_InternetSession = _FTP_Open('AuoItZilla',$INTERNET_OPEN_TYPE_PRECONFIG, $INTERNET_FLAG_ASYNC ) ;Öffnet eine FTP Sitzung
    ;$l_InternetSession = _FTP_Open('AuoItZilla',$INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY, $INTERNET_FLAG_ASYNC ) ;Öffnet eine FTP Sitzung
    ;$l_InternetSession = _FTP_Open('AuoItZilla',$INTERNET_OPEN_TYPE_PROXY, $INTERNET_FLAG_ASYNC ) ;Öffnet eine FTP Sitzung
    ;$l_InternetSession = _FTP_Open('MyFTP Control', $INTERNET_FLAG_FROM_CACHE) ;Öffnet eine FTP Sitzung
    ;$l_InternetSession = _FTP_Open('AuoItZilla',$INTERNET_OPEN_TYPE_DIRECT, $INTERNET_FLAG_FROM_CACHE ) ;Öffnet eine FTP Sitzung
    ;$l_InternetSession = _FTP_Open('AuoItZilla',$INTERNET_OPEN_TYPE_PRECONFIG, $INTERNET_FLAG_FROM_CACHE ) ;Öffnet eine FTP Sitzung
    ;$l_InternetSession = _FTP_Open('AuoItZilla',$INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY, $INTERNET_FLAG_FROM_CACHE ) ;Öffnet eine FTP Sitzung
    ;$l_InternetSession = _FTP_Open('AuoItZilla',$INTERNET_OPEN_TYPE_PROXY, $INTERNET_FLAG_FROM_CACHE ) ;Öffnet eine FTP Sitzung

    [/autoit]


    so nochmal versucht...immernoch...

    Einmal editiert, zuletzt von Viperdriver2000 (4. Juli 2012 um 13:00)

  • Welchen Hoster benutzt du? Bevor ich das Skript für die dt. Hilfe eingereicht habe, wurde es von mir auf bplaced.ne, square7.ch, kilu.de, lima-city.de und ohst.de getestet. Bei all diesen läuft es problemlos. Poste bitte zusätzlich dein verwendetes OS,ich konnte nur unter Win XP testen,

    mfg autoBert

  • Also ich habe es jetzt bei "strato webhosting" "Strato-hidrive" und bei meinem eigenen root server getestet.
    Als OS habe ich zum testen win7 32 & 64 bit und Windows WebServer 2008 R2 SP1.

    Aber wenn ich das richtig lese scheitert es ja noch nichtmal an der übertragung sondern eher am verbindungsaufbau oder?
    Ich habe das ganze auch schon zur exe gemacht und als admin gestartet...brachte auch nix :(

    Danke & Gruß

  • "_FTP_Open()" baut ja nicht mal eine Verbindung auf, das würde erst "_FTP_Connect()" tun. Soweit ich das verstanden habe, wird nur die Struktur /der Handle für eine mögliche Datenübertragung aus der "WinINet.dll" bereitgestellt.

    Also noch keine Verbindung nach außen ! Alles nur zwischen Deinem AutoIt-Tool und der DLL.

    Zur Nutzung dieses Forum's, ist ein Übersetzer für folgende Begriffe unerlässlich:

    "On-Bort, weier, verscheiden, schädliges, Butten steyling, näckstet, Parr, Porblem, scripe, Kompletenz, harken, manuel zu extramieren, geckukt, würglich, excell, acces oder Compilevorgeng"

  • mh...okay...
    ich kann erstmal feststellen das die datei WinINet.dll da ist ^^

  • Also ich habe das jetzt nochmal auf nem XP Rechner getestet.
    Da geht es ohne Problem oO
    Also scheint Win7 hier das problem zu sein... :(

    EDIT:
    also mit dem kompatibilitätsmodus geht es auch ^^
    werde ich morgen mal auf dem anderen rechner testen...

    Einmal editiert, zuletzt von Viperdriver2000 (6. Juli 2012 um 18:44)