I file audio (come gli MP3) sono in genere gestiti dai browser chiamando l'applicazione predefinita usata per gestirli. 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 downloadAudioFile( $file )
{
$fileName = $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);
header('Content-Type: '. $mime);
header('Content-Disposition: attachment; filename="' . basename($fileName) . '"');
header('Content-Transfer-Encoding: binary');
header('Connection: close');
readfile($fileName);
exit();
}
Dato che la funzione imposta gli header HTTP andrebbe utilizzata da sola, ovviamente senza generare alcun tipo di output dopo di essa.