Ciao,
comprendo le tue intenzioni, ma f(!file) dubito dia il risultato da te sperato...
Codice PHP:
if ( !file_exists($file) ) 
Altra cosa:
Codice PHP:
header("Content-Disposition: attachment; filename= " $file); 
La tua variabile $file contene tutto il percorso, non il solo nome del file.
Codice PHP:
header("Content-Disposition: attachment; filename= " basename($file)); 
Mancano altri dati come
Content-Type e Content-Length
ma in questo momento non ricordo se siano indispensabili.

Alessandro