Ftp Upload Problem

  • Hey leute ich habe da ein Problem und zwar:

    1. Es soll eine Datei heruntergeladen werden.
    2. Wenn man auf install klickt soll er Die heruntergeladene Dateil Hochladen
    3. Es soll gewartet werden bis Upload fertig ist und einen Hinweis geben z.B Upload Fertig Gestellt.
    4. Wenn der Upload Fertig ist, soll er die Heruntergeladene Datei löschen.

    Und kann man villt machen das er keine Bytes sondern % anzeigt?? also beim Dl

    Hier ist mein bisheriger Code:

    [autoit]


    #include <ftp.au3>
    #include <GUIConstants.au3>

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

    ; File
    InetGet("http://webmasterparadies.net/wcms.zip", 'C:\wcms.zip', 1, 1)

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

    While @InetGetActive
    TrayTip("Downloading", "Bytes = " & @InetGetBytesRead, 10, 16)
    Wend

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

    MsgBox(0, "Fertig", "Download abgeschlossen!")

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

    $Design = FileInstall("tpl.jpg", @TempDir & "\tpl.jpg")

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

    ; Hauptfenster
    $GUI = GUICreate("Wcms", 690, 425, 250, 76)
    $Install = GUICtrlCreateButton("W-CMS Installieren", 200, 176, 233, 65, 0)
    GUISetState(@SW_SHOW)

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

    ; Anzeigebild
    GUICtrlCreatePic(@TempDir & "\tpl.jpg", -3, -4, 699, 433)
    GUICtrlSetState(-1, $GUI_DISABLE)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

    Case $Install

    ; Ftp Daten / Funktion
    $server = 'xxx'
    $username = 'xxx'
    $pass = 'xxx'

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

    $Open = _FTPOpen('MyFTP Control')
    $Conn = _FTPConnect($Open, $server, $username, $pass)
    ; Warten wegen dem Download
    Sleep(5000)
    $Ftpp = _FtpPutFile($Conn, 'C:\wcms.zip', '/wcms/wcms.zip')
    $Ftpc = _FTPClose($Open)
    Sleep(5000)
    FileDelete("C:\wcms.zip")

    EndSwitch
    WEnd

    [/autoit]

    Hoffe ihr könnt mir Helfen!!

  • Folgende Funktion gibt es in der "FTP_Ex.au3":

    _FTPGetFileSize()
    [autoit]

    ;===============================================================================
    ;
    ; Function Name: _FTPGetFileSize()
    ; Description: Gets filesize of a file on the FTP server.
    ; Parameter(s): $l_FTPSession - The Long from _FTPConnect()
    ; $s_FileName - The file name.
    ; Requirement(s): DllCall, wininet.dll
    ; Return Value(s): On Success - 1
    ; On Failure - 0
    ; Author(s): J.o.a.c.h.i.m. d.e. K.o.n.i.n.g.
    ;
    ;===============================================================================

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

    Func _FTPGetFileSize($l_FTPSession, $s_FileName)

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

    Local $ai_FTPGetSizeHandle = DllCall($GLOBAL_FTP_WININETHANDLE, 'int', 'FtpOpenFile', 'hwnd', $l_FTPSession, 'str', $s_FileName, 'long', 0x80000000, 'long', 0x04000002, 'long', 0)
    Local $ai_FTPGetFileSize = DllCall($GLOBAL_FTP_WININETHANDLE, 'dword', 'FtpGetFileSize', 'long', $ai_FTPGetSizeHandle[0], 'dword*', 0)
    If @error Or $ai_FTPGetFileSize[0] = 0 Then
    SetError(-1)
    Return 0
    EndIf
    DllCall($GLOBAL_FTP_WININETHANDLE, 'int', 'InternetCloseHandle', 'str', $l_FTPSession)

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

    ;~ Return $ai_FTPGetFileSize[0]
    Return BitOR(BitShift($ai_FTPGetFileSize[2], -32), BitAND($ai_FTPGetFileSize[0], 0xFFFFFFFF))

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

    EndFunc ;==>_FTPGetFileSize

    [/autoit]

    und dann:

    gelesene Byte / gesamt Byte * 100 = Fortschritt in %

    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"

  • In der FTPEx gibt es auch eine Funktion namens _FTP_UploadProgress ;) Schau dir die einfach mal an :P