Meilleur moyen de compter les téléchargements de fichiers sur un site Web
-
03-07-2019 - |
Question
Il est étonnant de constater à quel point il est difficile de trouver une réponse simple et concise à cette question:
- J'ai un fichier, foo.zip, sur mon site web
- Que puis-je faire pour savoir combien de personnes ont accédé à ce fichier?
- Je pourrais utiliser les appels Tomcat si nécessaire
Mise à jour: Si vous suggérez d'écrire un script, pouvez-vous m'indiquer un script correct?
La solution
Vous pouvez également analyser le fichier journal si vous n'avez pas besoin des données en temps réel.
cat /path/to/access.log | grep foo.zip | grep 200 | wc -l
En réponse au commentaire:
Le fichier journal contient également des octets téléchargés, mais comme l'a souligné une autre personne, il se peut que le nombre indiqué ne soit pas correct si un utilisateur annule le téléchargement côté client.
Autres conseils
La solution la plus simple consisterait probablement à remplacer le lien directement vers le fichier, le lien vers un script qui incrémente un compteur, puis le transmet au fichier en question.
Avec la réponse "Le moyen le plus simple serait probablement, au lieu de créer un lien direct vers le fichier, de créer un lien vers un script incrémentant un compteur, puis de le transférer au fichier en question".
Ceci est supplémentaire:
$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
Ici, count.txt
est un simple fichier texte contenant les informations du compteur.
Vous pouvez également l'enregistrer dans une table de base de données avec nom_fichier_éligible.ext
également.
Utiliser les journaux - chaque demande GET pour le fichier correspond à un autre téléchargement (sauf si le visiteur a arrêté le téléchargement en cours de route pour une raison quelconque).