Hello,
da kann man was basteln mit register_tick_function().
Lies die Datei nicht mit File() ein, sondern mit
fread($fp,512) in einer Schleife. In der Schleife lässt Du einen einen Zähler decrementieren. Durch die Tick-Funktion lässt Du ihn wieder incrementieren.
Nun musst Du nur den Startwert, die untere und die obere Schranke bestimmen. Wenn der Zähler bei der nächsten Tick-Funktion zu hoch wird, brichst Du das Download ab, indem Du einfach die Connection schließt (fclose($fp)) und die Downloadfunktion beendest (die hört mit Fehler dann von alleine auf. Den Read-Error würd eich auswerten...
Grüße
Tom