servidor - php descargar archivo desde url




¿Cómo hago un seguimiento de las descargas de archivos? (6)

Tengo un sitio web que reproduce mp3 en un reproductor flash. Si un usuario hace clic en "reproducir", el reproductor flash descarga automáticamente un mp3 y comienza a reproducirlo.

¿Hay una manera fácil de rastrear cuántas veces se ha descargado un clip de canción en particular (o cualquier archivo binario)?

¿El enlace de reproducción es un enlace al archivo mp3 real o a algún código javascript que aparece un reproductor?

Si es lo último, puede agregar fácilmente su propio código de registro para rastrear la cantidad de visitas.

Si es lo primero, necesitará algo que pueda rastrear el registro del servidor web y hacer esa distinción. Mi plan de alojamiento viene con Webalizer, que lo hace muy bien.

Es un código JavaScript que responde eso.

Sin embargo, sería bueno saber cómo rastrear descargas utilizando el otro método (sin cambiar de host).


¿El enlace de reproducción es un enlace al archivo mp3 real o a algún código javascript que aparece un reproductor?

Si es lo último, puede agregar fácilmente su propio código de registro para rastrear la cantidad de visitas.

Si es lo primero, necesitará algo que pueda rastrear el registro del servidor web y hacer esa distinción. Mi plan de alojamiento viene con webalizer, que lo hace muy bien.


¿Hay una base de datos para tu biblioteca de música? Si hay algún código de servidor que se ejecuta al descargar el mp3, puede agregar código adicional allí para aumentar el recuento de reproducción. También puede hacer que JavaScript haga una segunda solicitud para aumentar el recuento de juegos, pero esto podría llevar a que las personas / robots incrementen falsamente los recuentos.

Solía ​​trabajar para un sitio de radio por Internet y utilizamos tablas separadas para rastrear el tiempo que se reproducía cada canción. Nuestras transmisiones fueron impulsadas por un script perl que ejecuta icecast, por lo que activamos una solicitud de base de datos cada vez que una nueva pista comenzó a reproducirse. Luego, para calcular el recuento de reproducción, ejecutaremos una consulta para contar cuántas veces la identificación de una canción estaba en el registro de reproducción.


Incluso podría configurar una directiva .htaccess de Apache que convierta las solicitudes * .mp3 en la cadena de consulta con la que está trabajando dubayou. Puede ser una forma elegante de mantener la solicitud directa y aún así poder incorporar la función de registro en la respuesta.


Lo curioso es que escribí una galería de medios php para toda mi música hace 2 días. Tuve un problema similar. Estoy usando http://musicplayer.sourceforge.net/ para el jugador. Y la lista de reproducción se crea a través de php. Todas las solicitudes de música van allí un script llamado xfer.php? File = WHATEVER

$filename = base64_url_decode($_REQUEST['file']);
header("Cache-Control: public");
header('Content-disposition: attachment; filename='.basename($filename));
header("Content-Transfer-Encoding: binary");
header('Content-Length: '. filesize($filename));

//  Put either file counting code here. either a db or static files

//

readfile($filename);  //and spit the user the file


function base64_url_decode($input) {
    return base64_decode(strtr($input, '-_,', '+/='));
}

Y cuando llame a archivos use algo como:

function base64_url_encode($input) {
     return strtr(base64_encode($input), '+/=', '-_,');
}

http://us.php.net/manual/en/function.base64-encode.php

Si está utilizando JavaScript o un reproductor flash (reproductor JW, por ejemplo) que requiere que el enlace real sea un archivo mp3 o lo que sea, puede agregar el texto "& type = .mp3" para que el enlace final se convierta en algo como: "www .example.com / xfer.php? file = 34842ffjfjxfh & type = .mp3 ". De esa manera, parece que termina con una extensión mp3 sin afectar el enlace del archivo.


Usa bash:

grep mp3 /var/log/httpd/access_log | wc







analytics