FTP Downloader

  • Ich Suche ein Script das mehrere daten (z.b jpg,zip..) nacheinender von einen Ftp server herunterläd
    [Blockierte Grafik: http://www5.picfront.org/picture/08pCQGfqc/img/Unbenannt.jpg]Sollte z.b so ausehen

    MFG
    Chrisiwbi

    ich hab ein script gefunden das aber immer nur eine Datei herunterläd:

    [autoit]

    #include #include #include
    ; Url zum WebverzeichnisDim $ServerUrl = "http://wbi.eluhost.de/Partitionirer/";Dim $ServerUrl = "http://blog.kroegers-web.de/videos/autoit/"
    ; Dateiliste die runtergeladen werden sollDim $FileList = "files.txt"
    ;Speicherpfad für die ListeDim $SaveFileList = @TempDir & "\files.txt"

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

    ;Textdatei ladenIf InetGet($ServerUrl & $FileList, $SaveFileList, 1) = 0 ThenMsgBox(48, "Fehler...", "Fehler beim download der Dateiliste")Exit 1EndIf
    ;Dateiliste zum lesen öffnenDim $fso = FileOpen($SaveFileList, 0)

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

    ;Inhalt der Datei einlesenDim $txt = FileRead($fso)
    ;Dateiliste schliessenFileClose($fso)
    ;@CRLF aus der $txt Variabele entfernen$txt = StringReplace($txt, @CRLF, "|")

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

    $txtList = StringSplit($txt, "|")
    $txt = ""For $i = 1 To $txtList[0]$txtlistlen = StringLen($txtList[$i]) + 1$txtliststart = StringInStr($txtList[$i], "/") + 1If $txtliststart = 0 Then$txt = $txt & $i & "-" & $txtlist[$i] & "|"Else$txtlistcount = $txtlistlen - $txtliststart$txtlistresult = StringMid($txtList[$i], $txtliststart, $txtlistcount)$txt = $txt & $i & "-" & $txtlistresult & "|"EndIfNext
    $txt = StringTrimRight($txt, 1)
    ;Form$frmMain = GUICreate("FileLoader", 285, 150, 993, 325)$pcbDownload = GUICtrlCreateProgress(24, 64, 233, 17)$infoLabel = GUICtrlCreateLabel("", 24, 84, 233, 25);, $SS_CENTER )$cmdButton = GUICtrlCreateButton("Start Download", 24, 104, 233, 25, 0)GUICtrlSetState(-1, $GUI_DISABLE)$FileList = GUICtrlCreateCombo("FileList", 24, 24, 233, 25)GUICtrlSetData(-1, $txt)
    GUISetState(@SW_SHOW)
    ;Variable für die derzeit Ausgewählte DateiDim $selectet
    ;Variable für die DateiendungDim $mediaformat
    ;SpeicherortDim $SaveFile
    While 1$nMsg = GUIGetMsg()Switch $nMsgCase $GUI_EVENT_CLOSEExitCase $cmdButton$SaveFile = FileSaveDialog("Datei Speichern...", @DesktopDir, "Video (*." & $mediaformat & ")", 2, GUICtrlRead($FileList))If Not @error Then RunDownload()Case $FileListGUICtrlSetData($infoLabel,"")$id = StringLeft(GUICtrlRead($FileList),StringInStr(GUICtrlRead($FileList),"-")- 1)$selectet = $ServerUrl & $txtList[$id]InetGetSize($selectet)If @error ThenGUICtrlSetState($cmdButton, $GUI_DISABLE)ElseGUICtrlSetState($cmdButton, $GUI_ENABLE)EndIf$mediaformat = StringRight(GUICtrlRead($FileList), 3)EndSwitchWEnd

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

    Func RunDownload()GUISetState(@SW_DISABLE)$FileSize = InetGetSize($selectet)InetGet($selectet, $SaveFile, 1, 1)$curSize = 0DoGUICtrlSetData($pcbDownload, $curSize)$curFileSize = FileGetSize($SaveFile)$curSize = $curFileSize * 100$curSize = $curSize / $FileSize$curSize = Ceiling($curSize)$curFileSize = Round($curFileSize / 1024 / 1024, 2)GUICtrlSetData($infoLabel, $curFileSize & " - " & Round($FileSize / 1024 / 1024, 2) & " MB (" & $curSize & "%)")Sleep(200)Until $curSize >= 99GUISetState(@SW_ENABLE)GUICtrlSetData($infoLabel, "Download beendet!!!")GUICtrlSetData($pcbDownload, 0)EndFunc ;==>RunDownload

    [/autoit]
  • Hatte da mal ein Programm geschrieben .. Kannst es dir ja umschreiben ;)
    Thread

    @r1fLeX Nur wird in deinem script kein einziges mal auf einen FTP Server zugegriffen.. :huh:

    @Chrisiwbi ich würde es hiermit versuchen. Es gibt eine FTP.au3

    http://www.autoitscript.com/forum/index.php?showtopic=65942&hl=_FTPGetFileSize

    schöne Grüße

    Franz

    ---
    In "Independence Day" konnten die Windows-Erdcomputer problemlos mit denen der Außerirdischen kommunizieren. Was sagt uns das über unseren lieben Bill Gates? :D
    ---

  • Hi, schaust du bitte nach was ein FTP Server ist ! Dann verstehst du vielleicht auch, dass Du in Deinem Skript auf keinen FTP Server zugreifst. Sorry! Das ist Fakt.

    Mag sein dass Dein Script funktioniert, aber das ist ja nicht das Thema oder? Thema ist Download per ftp:// und nicht per http:// !

    schöne Grüße

    Franz

    ---
    In "Independence Day" konnten die Windows-Erdcomputer problemlos mit denen der Außerirdischen kommunizieren. Was sagt uns das über unseren lieben Bill Gates? :D
    ---

  • Kopier das Script , schreib es auf deinen ftp-server um und du wirst sehen es klappt!!

    Das dauert wahrscheinlich 10x so lange als es selber zu schreiben, abgesehen davon wird nicht auf einen FTP-Server zugegriffen bei deinem Script, d.h. man kann gar nix umschreiben, sondern muss es zwangsläufgi neu schreiben.

  • zeige mal die Zeile wo Du per FTP zugreifst? diese Zeile gibt es nicht! http:// ist KEIN FTP !!!! Ich weiß nicht wie ich es anders erklären soll.
    sperre deinen http Port 80 Deines Web Servers, dann wirst Du merken, dass nichts mehr geht !! Also kein FTP..

    P.S. übrigends das hier http://r1flex.kilu.de/ ist kein FTP Server... Sondern Du hast nur den Inhalt per FTP hochgeladen !!!

    ---
    In "Independence Day" konnten die Windows-Erdcomputer problemlos mit denen der Außerirdischen kommunizieren. Was sagt uns das über unseren lieben Bill Gates? :D
    ---

  • Hier die Zeilen oO

    [autoit]


    InetGet("http://r1flex.kilu.de/Ini's/your.ini", @TempDir & "\your.ini")
    InetGet("http://r1flex.kilu.de/Ini's/FTP-Checker2.ini", @TempDir & "\FTP-Checker2.ini")
    InetGet("http://r1flex.kilu.de/Ini's/FTP.ini", @TempDir & "\FTP.ini")
    InetGet("http://r1flex.kilu.de/Meine Tools/FTP-Checker.exe", @ScriptDir & "\FTP-Checker.exe")

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

    Case $Button1
    $name2 = GUICtrlRead($List2)
    $name = GUICtrlRead($List1)
    $speicherpfad = FileSelectFolder("Pfad wählen", "::{00020D75-0000-0000-C000-000000000046}")
    If @error = 1 Then
    Else
    $progress2 = InetGetSize("http://r1flex.kilu.de/" & $name2 & "/" & $name)
    InetGet("http://r1flex.kilu.de/" & $name2 & "/" & $name, $speicherpfad & "\" & $name, 0, 1)

    [/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit]
  • ohje.. .also bitte mach folgendes... lies bitte die letzte Zeile auf Deinen sogenannten FTP Server
    http://r1flex.kilu.de/

    Da steht:
    "Apache Server at r1flex.kilu.de Port 80"

    Und dann schau mal nach was unter Apache Server in google steht: "WEB SERVER" nicht FTP Server... Und dann google mal welcher Dienst auf Port 80 läuft! Da läuft auch der WEB Server kein FTP Server...
    Was für Hinweise brauchst du noch :?:

    ---
    In "Independence Day" konnten die Windows-Erdcomputer problemlos mit denen der Außerirdischen kommunizieren. Was sagt uns das über unseren lieben Bill Gates? :D
    ---

  • Oh , ok , dann war ich da falsch informiert!!
    Nehme alles zurück. Aber was ist dann ein FTP-Server sieht das nicht genau so aus?^^

  • ja stimmt, aber inetget könnte doch theoretisch doch ftp. Also in der Hilfe hab steht das hier:

    [autoit]

    InetGet("ftp://ftp.mozilla.org/pub/mozilla.org/README", "README.txt", 1)

    [/autoit]

    aber scheint dann wohl nur ein anonymous zugriff zu sein..

    oder man kann evtl. sowas

    [autoit]

    InetGet("ftp://ftp_username:ftp_PWD@Servername", "README.txt", 1)

    [/autoit]

    habe ich allerdings nicht getestet...

    ---
    In "Independence Day" konnten die Windows-Erdcomputer problemlos mit denen der Außerirdischen kommunizieren. Was sagt uns das über unseren lieben Bill Gates? :D
    ---

  • ich suche einfach nur ein script mit dem ich dateinen von einem server herunterladen kann

    Zitat

    Wo greifst du auf FTP zu? Das ist alles HTTP.
    Es ist ein gravierender Unterschied zwischen
    - FileTransferProtocol
    - HyperTextTransferProtocol

    war mein Fehler die dateien sollen von einem HTTP server geladen werden
    wobei über ftp get es doch auch ftp://XXX:XXX@wbi.eluhost.de/Partitionirer/

    MFG
    Chrisiwbi

    EDIT:
    Das Script in der Help get nicht die heruntergeladenen Dateien sind nur 4 kb gros

    [autoit]

    InetGet("http://wbi.eluhost.de/Partitionirer/", "artitonirer.z01")
    While @InetGetActive TrayTip("Downloading", "Bytes = " & @InetGetBytesRead, 10, 16) Sleep(250)Wend
    MsgBox(0, "Bytes read", @InetGetBytesRead)

    [/autoit]

    4 Mal editiert, zuletzt von Chrisiwbi (21. November 2008 um 14:03)

  • Lies doch mal die Hilfe zu InetGet genu :)
    InetGet("PFAD_ZUR_DATEI_IM_INTERNET_MIT_DATEINAME","ZIELPFAD_ZUM_DONWLAODEN")

  • Am einfachsten ist es mit

    [autoit]

    ProgressOn("Fortschritt", "Erhöhungsschritte in Sekunden", "0 Prozent")
    For $i = 10 to 100 step 10
    sleep(1000)
    ProgressSet( $i, $i & " Prozent")
    Next
    ProgressSet(100 , "Fertig", "Komplett")
    sleep(500)
    ProgressOff()

    [/autoit]

    ---
    In "Independence Day" konnten die Windows-Erdcomputer problemlos mit denen der Außerirdischen kommunizieren. Was sagt uns das über unseren lieben Bill Gates? :D
    ---