Pregunta

Es sorprendente lo difícil que es encontrar una respuesta simple y concisa a esta pregunta:

  1. Tengo un archivo, foo.zip, en mi sitio web
  2. ¿Qué puedo hacer para saber cuántas personas han accedido a este archivo?
  3. Podría usar llamadas de Tomcat si es necesario

Actualización: Si sugiere escribir un script, ¿puede señalarme uno decente?

¿Fue útil?

Solución

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 al comentario:

El archivo de registro también contiene bytes descargados, pero como alguien más señaló, esto puede no reflejar el recuento correcto si un usuario cancela la descarga en el lado del cliente.

Otros consejos

La forma más sencilla probablemente sería en lugar de vincular directamente al archivo, vincular a un script que incremente un contador y luego reenviar al archivo en cuestión.

Con la respuesta " La forma más sencilla probablemente sería en lugar de vincular directamente al archivo, vincular a un script que incremente un contador y luego reenviar 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 archivo de texto simple que almacena la información del contador. Puede guardarlo en una tabla de base de datos junto con downloadable_filename.ext también.

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top