Download mit cURL inklusive Fortschritt: Unsinnige Werte

  • PHP 5.3.4, cURL 7.24.0, Windows 7 SP1 64b

    Ich rufe das folgende Skript an der Windows-Eingabeaufforderung (CMD) auf; es soll eine große ZIP-Datei (~128 MB) herunterladen werden, falls sie nicht bereits mit exakt dem gleichen Namen vorhanden ist, und eventuell vorhandene ältere Dateien mit dem gleichen Namensmuster vorher löschen. Also immer die aktuelle Version davon verfügbar halten.

    Die Reaktion ist merkwürdig:

    • Der Parameter "$to_download" (erwartete Zielgröße) erhöht sich, als ob er die bisher heruntergeladene Größe darstellt.
    • Der Parameter "$downloaded" (bisher heruntergeladene Größe) ist immer 0. (siehe erzeugte CSV-Logdatei)
    • Die heruntergeladenen Daten werden nicht in die erzeugte Zieldatei gespeichert, sie bleibt leer.
    • In einer vorherigen Abfrage konnte die erwartete Zielgröße problemlos bestimmt werden, sie wäre also nicht unbekannt.
    • Wenn ich den übertragenen HTTP-Header ausgeben lasse, ist die Zielgröße darin lesbar.


    Ich bin mir nicht sicher, ob ich etwas bei der Bearbeitung durcheinander gebracht habe, oder ob cURL hier die Progress-Callback-Funktion falsch bedient... aber warum?

  • ^ Eine Lösung gefunden:

    Erst ab cURL 7.32.0 gibt es $resource als ersten Parameter. Deshalb waren sie verschoben. Fortschrittsanzeige funktioniert jetzt.

    Leider wird der Download immer noch nicht gespeichert. Die Zieldatei bleibt leer.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!