doch, sicher - das Script reicht doch die Daten durch, und zwar bis zum letzten Byte. Ob das in *einem* Aufruf mit readfile() erfolgt, oder häppchenweise mit fread()/echo, ändert daran nichts. Beide Varianten bewirken, dass das Script erst endet, wenn der letzte Block an den Client gesendet wurde.
Dann scheint ja irgendwo das Script zu denken das der Block zu ende ist, wenn er immer abbricht.
Klingt nach einer vernünftigen Alternative.
Heist auf deutsch, alles per ftp oder direkt downloaden zu lassen oder?
Warum willst du den direkten Zugriff denn so krampfhaft vermeiden?
Weil sich beim direktverlinken die User sich nicht anmelden müssen. ;)