2008-10-01 107 views
8

这是令人惊讶的是多么困难找到一个简单,简洁的回答这个问题:最佳方式

  1. 我有我的网站上
  2. 文件,foo.zip,我能做些什么来找出有多少人访问过这个文件?
  3. 我可以使用Tomcat电话如果必要

更新:如果您建议编写一个脚本,你可以点我一个体面呢?

回答

10

或者你可以解析日志文件,如果你不需要实时的数据。

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

在回复评论:

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

+0

绝对最简单,如果你有访问日志 – 2008-10-01 15:26:31

10

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

+0

你得到下载_attempts_,这是非常合理的。 – bobobobo 2011-02-11 21:30:42

+0

有关更多信息,请参阅[此答案](http://stackoverflow.com/a/16874980/1804173)中的链接非常有用。 – bluenote10 2015-06-13 20:02:46

0

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

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一起保存在数据库表中。