Как подсчитывать количество закачек файла(ов) с сервера.

vmaximov777

Новичок
Как подсчитывать количество закачек файла(ов) с сервера.

У меня есть страница. На ней ссылка. Кликая на ссылку пользователь скачивает файл - скажем some.zip.

Как эффективно решить задачу подсчета количества скачиваний данного файла?

Всем ответившим заранее благодарен.
 
0xHH
не приставай к человеку по частям.

vmaximov777
самоепростое - это считать обращения к файлу в логах веб-сервера
 
vmaximov777
flashget качает по частям и т.д.

Фанат это будет первым вопросом топикстартера, когда счётчик начнет "махлевать".
 
1. какая ему разница?
2. вот когда начнёт мухлевать - пусть тогда и спрашивает.
что ж вы все хотите запихнуть в человека всё сразу?
пусть хоть как-то научится делать.
 
самоепростое - это считать обращения к файлу в логах веб-сервера
А можна поподробнее.
flashget качает по частям и т.д.
Если будем качать по частям - получиться больше обращений...и как вийти на точное число?
 
vmaximov777
Если программно, можно отдавать файл через редирект, подсчитывая запросы.

-~{}~ 21.08.06 23:38:

Если будем качать по частям - получиться больше обращений...и как вийти на точное число?
В общем случае никак.
 
Вы даёте линк http://domain.com/file.zip. file.zip- это php file, который увеличивает счётчик на 1 (примеры счётчиков в сети полно). После этого редиректит на http://domain.com/download/file.zip через header();
 
Спасибо - в общем понял ... но вот интересно как бы все делать не уходя из страницы - на ней у меня описание файла архива ... а так получается будет пропадать...
 
vmaximov777
Открывай закачку в новом окошке через JS

-~{}~ 22.08.06 07:43:

Еще, как возможное решение, можно все-таки анализировать логи apache. Также проверять IP клиента и если клиент уже закачивал файл(есть ранее в логе), то не считать это + к количеству закачек.
 
Посчитает и раскидает по дням, сколько скачиваний в какой день было.



<?
$path="";
$curpath="";
$script_name=getenv("SCRIPT_NAME");
if ($script_name!="" and ($pos=strpos($script_name, "/download.php"))!==false )
{
$path=substr($script_name,0, $pos);
}
$document_root=getenv("DOCUMENT_ROOT");
if ($document_root!="")
{
$curpath=$document_root.$path;
}
$n_today=0;
$d_fname="../edit/pr/" . date("y_m_d") . ".txt";
if (is_file($d_fname))
{
$file = fopen($d_fname,"r");
list($n_today) = fscanf($file,"%f");
fclose($file);
}
$n_today++;
$file=fopen($d_fname,"w");
fputs($file,sprintf("%f",$n_today));
fclose($file);

$filename='price.zip';
$filepath=$curpath.'/'.$filename;
$flsize=filesize($filepath);
header("Content-disposition: attachment; filename=$filename");
header("Accept-Ranges: bytes");
header("Content-Length: $flsize");
header("Content-Type: application/force-download");
readfile($filepath);
?>
 
Сверху