Meilleur moyen de compter les téléchargements de fichiers sur un site Web

StackOverflow https://stackoverflow.com/questions/158124

  •  03-07-2019
  •  | 
  •  

Question

Il est étonnant de constater à quel point il est difficile de trouver une réponse simple et concise à cette question:

  1. J'ai un fichier, foo.zip, sur mon site web
  2. Que puis-je faire pour savoir combien de personnes ont accédé à ce fichier?
  3. 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?

Était-ce utile?

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).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top