ma la funzione forceDownload che dici tu in effetti fa sempre la stessa cosa.... tramite il comando header.. con l'unica limitazione che il file dev'essere già presente su server

if (file_exits ($file) .....)

invece se non sbaglio il problema era che il file viene creato solo nel /tmp del server e da li scaricato... così si risolvono eventuali scazzi del tipo... nn ho cartelle aperte in scrittura...