FTP upload, finde den Fehler nicht

  • [autoit]

    #include<ftp.au3>
    $server = '*****'
    $username = '*****'
    $pass = '*****'

    $Open = _FTPOpen("MyFTP Control")
    $Conn = _FTPConnect($Open, $server ,$username ,$pass )
    $Ftpp = _FtpPutFile($Conn,'C:\Dokumente und Einstellungen\WoEf\Desktop\Quak.txt','quak.txt')
    $Ftpc = _FTPClose($Open)

    [/autoit]

    Der upload der quak.txt funktioniert leider nicht, hab
    keine ahnung woran es liegt, wäre nett wenn mir jemand
    weiterhelfen könnte,

    Danke, Wöf out ! :party3:

  • hatte das gleiche problem wie du...irgendwer meinte dann zu mir dass ich das in FTPOpen zusammenschreiben soll ohne leerzeichen dazwischen....
    das hier geht auf jeden fall:

    [autoit]

    #include<ftp.au3>
    $server = "***.***.***.***"
    $username = "*********"
    $pass = "*************"
    $dir = "/some_dir/";muss nicht angegeben werden
    $time = @HOUR&"-"&@MIN&"-"&@SEC;muss ebenfalls nicht angegeben werden
    $Open = _FTPOpen("MyFTP_Control")
    $Conn = _FTPConnect($Open, $server, $username, $pass)
    $Ftpp = _FtpPutFile($Conn,@ScriptDir&"\config.ini",$dir&"_"&$time&".ini")
    $Ftpc = _FTPClose($Open)

    [/autoit]


    Die Zeit und der Pfad sind keine Pflichtangaben...brauchte das nur für nen script...

  • hi,

    damit FTP in der aktuellen Version funktioniert mußt du die wininet.dll laden.

    [autoit]


    #include<ftp.au3>
    $server = '*****'
    $username = '*****'
    $pass = '*****'

    $dll = DllOpen("wininet.dll")

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

    $Open = _FTPOpen("MyFTP Control")
    $Conn = _FTPConnect($Open, $server ,$username ,$pass )
    $Ftpp = _FtpPutFile($Conn,'C:\Dokumente und Einstellungen\WoEf\Desktop\Quak.txt','quak.txt')
    $Ftpc = _FTPClose($Open)

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

    DllClose($dll)

    [/autoit]

    ... oder es direkt in die ftp-UDF einbauen.

  • Kannst Du denn mit einem FTP-Programm in das gleiche Verzeichnis auf dem Server hochladen? Eventuell ist es ja auch nur ein Rechteproblem.

  • mhh komisch bei mir geht das wunderbar ohne probleme...

    Spoiler anzeigen
    [autoit]

    #include<ftp.au3>
    $server = "127.0.0.1"
    $username = "deinusername"
    $pass = "deinpasswort"

    $dll = DllOpen("wininet.dll")

    $Open = _FTPOpen("MyFTP_Control")
    $Conn = _FTPConnect($Open, $server ,$username ,$pass )
    $Ftpp = _FtpPutFile($Conn,@ScriptDir&'\Quak.txt','quak.txt')
    $Ftpc = _FTPClose($Open)

    DllClose($dll)

    [/autoit]


    Sicher dass alle pfadangaben korrekt sind??
    wenn nicht gibt doch einfach mal alle variablen in der MsgBox aus dann haste den Rückgabewert und könntest feststellen wo der fehler liegt....

  • versuche es mal bitte mit folgendem Skript, dann bekommst Du auf jeden Fall eine Rückmeldung an welcher Stelle es nicht funktioniert. Ich habe noch zusätzlich die Funktion _FtpSetCurrentDir eingebaut, falls Du auf dem Server noch ein Verzeichnis wechseln mußt.

    [autoit]


    #include<ftp.au3>
    $server = 'ftp.jep.de'
    $username = 'heinzel'
    $pass = 'maennchen'

    $dll = DllOpen("wininet.dll")

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

    $Open = _FTPOpen("MyFTP Control")
    If @error Then MsgBox(64,"Verbindung", "ftpopen fehlgeschlagen")
    $Conn = _FTPConnect($Open, $server ,$username ,$pass )
    If @error Then MsgBox(64,"Verbindung", "ftpConnect fehlgeschlagen")
    _FtpSetCurrentDir($Conn, "/pub/irgendwas/") ;Verzeichnis auf dem Server wechseln
    If @error Then MsgBox(64,"Verbindung", "ftpSetCurrentDir fehlgeschlagen")
    $Ftpp = _FtpPutFile($Conn,'X:\Ordner\datei.txt','quak.txt')
    If @error Then MsgBox(64,"Verbindung", "ftpPutFile fehlgeschlagen")
    $Ftpc = _FTPClose($Open)
    If @error Then MsgBox(64,"Verbindung", "ftpclose fehlgeschlagen")

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

    DllClose($dll)

    [/autoit]

    EDIT:
    DllOpen und DllClose hinzugefügt

    Einmal editiert, zuletzt von jonk (7. Januar 2007 um 20:29)

  • Bei mir klappt das ganze leider auch nicht :(

    Edit:
    Fehler kommt bei _PutFile!
    Mit FlashFXP kommt ich auf den Webserver!

    Einmal editiert, zuletzt von Zen (7. Januar 2007 um 20:14)

  • Jap, aber wie ich sehe benutzt INet.au3 auch die wininet.dll. Aber ich habe die ftp.au3 oben im Anhang in mein Include gemacht und die alte überschrieben. Daran sollte es nicht liegen...

  • hmmm, dann fallen mir noch folgende Fehlerquellen ein:
    - ist die hochzuladende Datei wirklich vorhanden?
    - ist das Remoteverzeichnis vorhanden?
    - ist das Remoteverzeichnis korrekt geschrieben (bei unix ist Groß-und Kleinschreibung wichtig!)?
    - muss ggf. noch in das korrekte Verzeichnis gewechselt werden?
    - sind entsprechende Rechte im Zielverzeichnis vorhanden?
    - blockt eventuell eine Firewall den Upload (ports 21/20 oder die Anwendung)?
    - wird wirklich das korrekte ftp.au3-Include verwendet? -> ggf. in das Skriptverzeichnis kopieren um sicher zu gehen.
    - ist ein Proxy zwischen client und server?

    EDIT
    Const $FTP_TRANSFER_TYPE_ASCII = 0x01
    Const $FTP_TRANSFER_TYPE_BINARY = 0x02
    Const $INTERNET_FLAG_NO_CACHE_WRITE = 0x4000000
    $ftp_flags_bin = $FTP_TRANSFER_TYPE_BINARY + $INTERNET_FLAG_NO_CACHE_WRITE
    $ftp_flags_ascii = $FTP_TRANSFER_TYPE_ASCII + $INTERNET_FLAG_NO_CACHE_WRITE

    Du könntest $ftp_flags_bin oder $ftp_flags_ascii als vierten Parameter bei _FTPPutFile angeben.

    2 Mal editiert, zuletzt von jonk (7. Januar 2007 um 21:06)

  • Ach ich bin ein Depp... Sorry für die gestohlene Zeit. Die Rechte haben gefehlt! Vielen Dank für deine Hilfe!!

    -------------------

    Hätte da noch ne Frage zu FTP.
    Wie realisiere ich denn eine Progressbar, die mir zeigt, wie weit der Upload und der Download ist? Hättest du da eine Idee oder sogar eine Lösung?


    Zen

    Einmal editiert, zuletzt von Zen (7. Januar 2007 um 22:12)