La cosa migliore (avendo accesso al server web) sarebbe quella di far "uploadare" i file al di fuori della document_root in modo da non potere accedervi direttamente tramite browser.
Se non è il tuo caso metti un file .htaccess che protegga l'accesso ai file.
A questo punto (allo stesso modo per tutte e 2 le alternative), quando vuoi dare in lettura il file all'utente usi una procedura php, che richiama la funzione readfile, e da in output l'mp3.
Facendo in questo modo puoi mettere all'interno del tuo file php tutti i controlli che vuoi, richiedere ad esempio una variabile che contenga un codice di downlaod che può valere 1 o N volte ecc ecc.
Qui sotto ti posto il codice generico che uso per dare in output un file:
La riga in grossetto puoi migliorarla mettendo il mimetype dell'mp3.codice:function readfileheader($nomefile) { if($nomefile) { header("Expires: Mon, 12 Jul 1976 06:20:00 GMT"); header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); header("Cache-Control: no-store, no-cache, must-revalidate"); header("Cache-Control: post-check=0, pre-check=0", false); header("Pragma: no-cache"); header('Content-type: application/octet-stream'); header('Content-Disposition: attachment; filename="'.basename($nomefile).'"'); readfile($nomefile); } }
ciao

Rispondi quotando