Ho da poco implementato sul mio sito internet uno script che permette agli utenti di scaricare file multimediali senza vedere il percorso nella barra dell'url.
Quando un utente clicca sul link http://www.miosito.com/download.php?product_id=*****(codice di 16 cifre) lo script lo indirizza al vero file di destinazione.
Lo script è il seguente:
$clip[0] è la variabile array estratta dal database tramite query ed istruzione mysql_fetch_row ed indica l'url del file.Codice PHP:
$path ="http://www.miosito.com/products/$clip[0]";
$mm_type="application/octet-stream";
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Type: $mm_type");
header("Content-Length: ".filesize($path));
header('Content-Disposition: attachment; filename="'.basename($path).'"');
header("Content-Transfer-Encoding: binary\n");
readfile($path);
exit();
Con questo script il file viene regolarmente scaricato. Il problema insorge all'apertura del file con Windows Media Video o altri lettori multimediali. Il file video non viene letto e compare la scritta "Interfaccia non registrata". Premetto che le copie di tali files salvate nel mio pc funzionano perfettamente. Da cosa può dipendere tutto ciò?