Schöne Volleyvorlage!
Eine Anmerkung: bei Content-Disposition sollte man den Dateinamen in doppelte Anführungszeichen packen (falls mal Leer- oder Sonderzeichen drin sind).
Etwa so:
Code:
header('Content-Disposition: attachment; filename="' . basename($filename) . '"');