Originariamente inviato da cubalibre810
Se ti serve per fare un contatore mi pare di ricordare che se utilizzi header per far scaricare il file e incrementi il contatore dopo il readfile(), questo si incrementa solo se il file è stato inviato tutto, se il download è stato interrotto non incrementa.
questa è interessante, potresti spenderci due parole in più 
io ho creato un'area riservata e vorrei sapere chi, quando, come scarica uno qualsiasi dei files, ora io sono riuscito a farlo, ma senza tener conto che il download potrebbe anche fallire, o a metà l'utente potrebbe rendersi conto di aver sbagliato file e quindi interrompere il download.
in questi casi io salvo lo stesso il log dell'utente, ma è un qualcosa di fasullo perché alla fine il download non è stato completato.
la funzione che utilizzo per il download è quella presa dal sito di andr3a:
codice:
function forceDownload($file) {
/**
* Function forceDownload:
* download any type of file if it exists and is readable
* -------------------------------------
* @author Andrea Giammarchi
* @date 18/01/2005 [17/05/2006]
* @compatibility PHP >= 4.3.0
*/
if(file_exists($file) && is_readable($file)) {
$filename = basename($file);
if(strpos(strtoupper($_SERVER['HTTP_USER_AGENT']), 'MSIE') !== false && strpos($filename, '.') !== false) {
$parsename = explode('.', $filename);
$last = count($parsename) - 1;
$filename = implode('%2E', array_slice($parsename, 0, $last));
$filename .= '.'.$parsename[$last];
}
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="'.$filename.'"');
header('Content-Length:'.filesize($file));
header('Content-Transfer-Encoding: binary');
if(@$file = fopen($file, "rb")) {
while(!feof($file))
echo fread($file, 8192);
fclose($file);
}
exit(0);
}
}
se riesci a dirmi qualcosa in più te ne sarei davvero grato