2008-10-01 17 views
8

Es sorprendente lo difícil que es encontrar una respuesta simple y concisa a esta pregunta:mejor manera de contar las descargas de archivos en un sitio web

  1. Tengo un archivo, foo.zip, en mi sitio web
  2. ¿Qué puedo hacer para averiguar cuántas personas han accedido a este archivo?
  3. que podría utilizar Tomcat llama si es necesario

Actualización: Si usted sugiere escribir un guión, ¿me puede apuntar a una decente?

Respuesta

10

O podría analizar el archivo de registro si no necesita los datos en tiempo real.

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

En respuesta a comentar:

El archivo de registro también contiene bytes descargados, pero como lo indicó otra persona, esto puede no reflejar el número correcto si un usuario cancela la descarga en el lado del cliente.

+0

definitivamente más simple si tiene acceso a los registros –

+0

¿esto le indica si la descarga se completó o canceló? –

+0

-1. Consulte la siguiente respuesta ... es más simple que analizar un registro – bobobobo

10

La manera más simple probablemente sería en lugar de vincular directamente al archivo, vincularlo a un script que incrementa un contador y luego lo reenvía al archivo en cuestión.

+0

Obtiene la descarga _attempts_, que es bastante razonable. – bobobobo

+0

Para obtener un poco más de información, el enlace en [esta respuesta] (http://stackoverflow.com/a/16874980/1804173) es bastante útil. – bluenote10

0

Utilice los registros: cada solicitud GET para el archivo es otra descarga (a menos que el visitante haya detenido la descarga parcialmente por algún motivo).

4

Con la respuesta "La manera más simple probablemente sería en lugar de vincular directamente al archivo, vincularlo a un script que incrementa un contador y luego lo reenvía al archivo en cuestión".

Esto es adicional:

$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 

Aquí count.txt es un simple fichero de texto, el almacenamiento de la información del contador. Puede guardarlo en una tabla de base de datos junto con downloadable_filename.ext también.

+0

¿cómo puedo? enlace a un script – cssGEEK

Cuestiones relacionadas