Best way to count file downloads on a website

前端 未结 4 1118
说谎
说谎 2020-12-10 15:27

It\'s surprising how difficult it is to find a simple, concise answer to this question:

  1. I have a file, foo.zip, on my website
  2. What can I do to find ou
相关标签:
4条回答
  • 2020-12-10 15:42

    Use the logs--each GET request for the file is another download (unless the visitor stopped the download partway through for some reason).

    0 讨论(0)
  • 2020-12-10 15:47

    The simplest way would probably be instead of linking directly to the file, link to a script which increments a counter and then forwards to the file in question.

    0 讨论(0)
  • 2020-12-10 15:53

    With the answer "The simplest way would probably be instead of linking directly to the file, link to a script which increments a counter and then forwards to the file in question."

    This is additional:

    $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
    

    Here count.txt is a simple plain text file, storing the counter info. You can save it in a database table along with downloadable_filename.ext also.

    0 讨论(0)
  • 2020-12-10 16:02

    Or you could parse the log file if you don't need the data in realtime.

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

    In reply to comment:

    The log file also contains bytes downloaded, but as someone else pointed out, this may not reflect the correct count if a user cancels the download on the client side.

    0 讨论(0)
提交回复
热议问题