It's surprising how difficult it is to find a simple, concise answer to this question:
- I have a file, foo.zip, on my website
- What can I do to find out how many people have accessed this file?
- I could use Tomcat calls if necessary
It's surprising how difficult it is to find a simple, concise answer to this question:
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.
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.
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.
Use the logs--each GET request for the file is another download (unless the visitor stopped the download partway through for some reason).
Just use cPanel metrics. Therte is a lot of information there.
© 2022 - 2024 — McMap. All rights reserved.