I file audio sono in genere gestiti dai browser chiamando l'applicazione predefinita usata per gestirli o direttamente. A volte tuttavia c'è l'esigenza di forzare il download di questi file piuttosto che farli aprire nel browser. Vediamo come fare.
Possiamo usare la seguente funzione:
function my_download_audio_file($file) {
$mime = 'application/force-download';
header('Pragma: public'); // richiesto
header('Expires: 0'); // nessuna cache
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Cache-Control: private',false); // non sovrascrive il precedente
header('Content-Type: '. $mime);
header('Content-Disposition: attachment; filename="' . basename($file) . '"');
header('Content-Transfer-Encoding: binary');
header('Connection: close');
readfile($file);
exit;
}
Dato che la funzione imposta gli header HTTP andrebbe utilizzata da sola, ovviamente senza generare alcun tipo di output dopo di essa.