ftp upload

  • Hallo hab folgendes Problem, will mit autoit eine datei auf meinen ftp server uploaden.Funktioniert bei mit im netztwerk wunderbar.Bloss wenn ich es über das internet versuche geht es nicht.Ftp verbindung wird hergestellt.Der Ftp server gibt folgende meldung:
    Receiving file c:\daten\ous\test.jpg
    [4] Mon 05Jun06 18:10:45 - (000033) Error receiving file c:\daten\ous\test.jpg, aborting (0 bytes/sec - 0 bytes, unable to open data connection)

    was bedeutet "unable to open data connection"
    wenn ich lokal Probiere geht es ja auch ?
    hab folgendens cod verwendet.

    Code
    $myftp = _Ftpopen("ftp1")
    	$myftp2 = _FTPConnect($myftp,$IP,"xxx","xxx","xxx")
    	$test = _FTPPutFile($myftp2, "C:\Programme\TamTech\test.jpg","test.jpg")

    weis da einer vielleicht was bescheid?

    2 Mal editiert, zuletzt von Tam0r (5. Juni 2006 um 18:25)

  • Hi TamOr,
    liefern die _FTP..-Funktionen keinen Fehler zurück?
    Warum fragst du die nicht mal ab?
    Ich denke mal, dies kennst du schon..
    Gruß
    ytwinky

    (Ich) benutze stets die aktuelle (Beta) und SciTE..

    Einmal editiert, zuletzt von ytwinky (5. Juni 2006 um 18:36)

  • Rückgabe wert ist nur 0 oder 1 leider nicht mehr :( 1 erfolg 0 kein erfolg.
    Was ich nicht verstehe ist das es im lan geht aber über internet nicht geht :(

  • Hi TamOr,
    ich habe leider kein fertiges AutoIt-Skript, um das zu testen, vielleicht hilft dir ja erstmal meine (vorläufige) Übersetzung ins Deutsche(ich bin nicht ganz sicher)?
    Hast du den Übertragungs-Modus auf Binär gesetzt?
    Stimmt der Port?
    (Nach UserName und Paßwort frage ich natürlich nicht :D )
    Gruß
    ytwinky

    (Ich) benutze stets die aktuelle (Beta) und SciTE..

  • :) also ich wüsste nicht wie ich auf binär setzen sollte den übertragunsmodus.
    hier habe ich mal so geschrieben gehabt aber war das gleiche
    $test = _FTPPutFile($myftp2, "C:\Programme\TamTech\test.jpg","test.jpg",1)
    also komma 1 aber war das gleich Problem.
    wie könnte mann denn den übertragungsmodus umstellen danke für deine übersetzung aber
    ; $l_Flags - Spezial-Flags
    ; $l_Context - Ich habe keine Ahnung, was das macht
    bringt mit genauso wenig :)
    wasz.b sind die Spezial-flags ?
    port und ip kennwort stimmt alles da ich ja connecten kann aber die datei kann anscheinden nicht übertragen werden.

  • In der Hilfe steht, daß es eine Option gibt:

    Code
    FtpBinaryMode Changes how FTP files are transferred.
    1 = Binary (default)
    0 = ASCII

    Ich habe das erstmal nur übersetzt und es ist auch noch nicht fertig :D
    'Ich habe keine Ahnung, was das macht' ist die reine Übersetzung von
    'I dont got a clue what this does' oder so
    Mit den 'Spezial-Flags bin ich noch nicht fertig..
    Gruß
    ytwinky

    (Ich) benutze stets die aktuelle (Beta) und SciTE..

  • Hi TamOr,
    ich habe gedacht, es wäre einfacher..
    ..mit anderen Worten ich habe es auch noch nicht geschafft.
    Es sollte ja auch schnell gehen:

    Spoiler anzeigen


    Vielleicht hilft dir das ja schon ein Stück weiter ?
    Gruß
    ytwinky

    (Ich) benutze stets die aktuelle (Beta) und SciTE..

    Einmal editiert, zuletzt von ytwinky (5. Juni 2006 um 22:59)

  • hmm hattest einpaar fehler drin hab die korrigiert aber trotzdem geht das irgendwie nicht.Jetzt kann ich nicht mal mehr im lan uplaoden verbindung wird aufgebaut aber schliest dann gleich weider


    Code
    $i=_FTPConnect($FTPHnd, GUICtrlRead($Server), GUICtrlRead($User), GUICtrlRead($passw),GUICtrlRead($port))


    und

    Code
    $i=_FTPPutFile($FTPHnd, GUICtrlRead($DateiName), "tamor.gif")


    waren falsch :) naja komisch

  • Hi TamOr,
    einen Fehler habe ich schon selbst gefunden und im Skript berichtigt:
    _FTPConnect liefert einen FileHandle zurück, der dann für _FTPPutfile benutzt werden muß..
    Das kommt davon, wenn man Sachen anfängt und dann liegenläßt, tut mit leid
    Im Original steht, daß das Handle für FTPPutFile() von FTPConnect() geliefert wird..
    Dafür muß $i geDimt werden..
    Ich muß erst mal deine Sachen anschauen.
    Gruß
    ytwinky

    (Ich) benutze stets die aktuelle (Beta) und SciTE..

  • hmm verstehe nicht ganz was du meinst ? hmmmmm :) wir connecten den doch eh mit der $varibla von ftp connect ? müsste doch dann stimmen odeR?

  • FtpOpen liefert einen Handle für FtpConnect
    FtpConnect liefert einen Handle für FtpPutFile
    Das Skript liefert jedenfalls für diese beiden Funktionen Handles
    und sonst 0 für Fehler
    Ich hoffe, ich habe das richtig verstanden, denn für meinen FTP-Server
    benutze ich PerfectFTP oder TwoDirs, denn mit denen klappt es :D
    Auf alle Fälle meldet das Protokoll keine Fehler, aber das Inhaltsverzeichnis vom FTPServer leider auch keine Datei..
    Also weitersuchen, das muß doch gehen..
    [Edit]
    Aber mit dem Problem sind wir nicht alleine:
    http://www.autoitscript.com/forum/index.php?showtopic=25143&hl=
    Gruß
    ytwinky

    (Ich) benutze stets die aktuelle (Beta) und SciTE..

    Einmal editiert, zuletzt von ytwinky (6. Juni 2006 um 00:06)

    • Offizieller Beitrag

    Hallo,

    Zitat

    was bedeutet "unable to open data connection"


    kann es sein das der Port 20 durch die Firewall geblockt wird?
    Hast du es schon mal mit einem anderen FTP-Programm probiert?
    Der Fehler weißt darauf hin das der Daten-Kanal (Port 20) nicht geöffnet werden kann. FTP arbeitet mit 2 Ports, Port 21 ist der Comand-Port und Port 20 ist der Daten-Port. Diese müssen auch beide in der Firewall freigegeben werden.

  • alles klar ich habe aber 5058 geforwartet weil das bei mir der port für mein ftp server ist den ich eingestellt habe.Ich habe gerade geschaut bei dem server kann ich aber nur einen Prot angeben, wie ist das jetzt Wird immer 21-1 also bei mir 5058 -1 für den datenport angegeben ? oder ist 20 definiert weist du was vielleicht ? hab gerade port 20 versucht ging auch nicht :(

    2 Mal editiert, zuletzt von Tam0r (6. Juni 2006 um 00:58)

    • Offizieller Beitrag

    Der Datenport (20) muss auch eingehende Verbindungen akzeptiieren je nach dem ob FTP im aktiven oder im passiven Modus arbeitet

    Hier ein Zitat welches ich in einem anderen Forum gefunden habe:

  • Hi Tamor,
    ich habe keine Ahnung, wieso es gestern nicht geklappt hat :D
    Mit diesem AutoIt-Skript klappt es aber:

    Spoiler anzeigen


    Und hier ist endlich tamor.gif :rofl2:
    Im Zip-File ist eine geänderte (fertige, 'deutsche')Version von FTP.Au3 und das
    Hauptskript. Ich hoffe, wenn der Transfer mit dem Internet klappt, daß er dann auch in
    deinem LAN klappt.
    [Edit]
    Es wäre vielleicht schneller gegangen, wenn ich den Link auf das Posting von Wolkenloser nicht nur reinkopiert hätte, sondern den Thread auch noch
    mal durchgelesen hätte, den da ist einiges dazugekommen, seit ich ihn das letzte Mal angesehen habe..
    Gruß
    ytwinky

    (Ich) benutze stets die aktuelle (Beta) und SciTE..

    Einmal editiert, zuletzt von ytwinky (6. Juni 2006 um 22:38)