filesize() può essere utilizzato con lacuni URL wrappers solo dalal versione 5 in poi, le altre funzioni invece le puoi usare anche con gli urlwrappers, per risolvere il problema potresti provare a togliere
header("Content-Length: ".filesize($filename));
(ma poi potrestia avere problemi di compatibilità con alcuni browser) oppure puoi sostituire la funzione filesize() con le dimesioni in byte del file
edit
battuto sul tempo...