计算网站上文件下载的最佳方式

时间:2008-10-01 15:12:14

标签: counter

令人惊讶的是,找到这个问题的简单,简洁的答案是多么困难:

  1. 我的网站上有一个文件foo.zip
  2. 如何找出有多少人访问此文件?
  3. 我可以在必要时使用Tomcat调用
  4. 更新:如果你建议写一个剧本,你能指点我一个体面的吗?

4 个答案:

答案 0 :(得分:10)

最简单的方法可能是直接链接到文件,链接到增加计数器的脚本,然后转发到相关文件。

答案 1 :(得分:10)

如果您不需要实时数据,也可以解析日志文件。

cat /path/to/access.log | grep foo.zip | grep 200 | wc -l

回复评论:

日志文件还包含下载的字节数,但正如其他人指出的那样,如果用户在客户端取消下载,这可能无法反映正确的计数。

答案 2 :(得分:4)

回答“最简单的方法可能不是直接链接到文件,而是链接到一个增加计数器然后转发到相关文件的脚本。”

这是额外的:

$hit_count = @file_get_contents('count.txt');
$hit_count++;
@file_put_contents('count.txt', $hit_count);

header('Location: http://www.example.com/download/pics.zip'); // redirect to the real    file to be downloaded

这里count.txt是一个简单的纯文本文件,存储计数器信息。 您可以将其与downloadable_filename.ext一起保存在数据库表中。

答案 3 :(得分:0)

使用日志 - 文件的每个GET请求都是另一个下载(除非访问者由于某种原因中途停止下载)。