如何跟踪文件下载

2022-08-30 08:01:19

我有一个在Flash播放器中播放mp3s的网站。如果用户单击“播放”,Flash播放器会自动下载mp3并开始播放。

有没有一种简单的方法来跟踪特定歌曲剪辑(或任何二进制文件)的下载次数?


播放链接是指向实际 mp3 文件的链接,还是指向弹出播放器的某些 javascript 代码的链接?

如果是后者,您可以轻松地在其中添加自己的日志记录代码以跟踪其命中数。

如果是前者,您将需要一些可以跟踪Web服务器日志本身并进行区分的东西。我的托管计划附带了Webalizer,它做得很好。

这是一个javascript代码,所以回答了这个问题。

但是,知道如何使用其他方法(不切换主机)跟踪下载会很好。


答案 1

有趣的是,我在2天前为我的所有音乐写了一个php媒体库。我遇到了类似的问题。我正在为播放器使用 http://musicplayer.sourceforge.net/。播放列表是通过php构建的。所有音乐请求都转到一个名为 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, '-_,', '+/='));
}

当您调用文件时,请使用如下内容:

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

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

如果您使用的是某些JavaScript或flash播放器(例如JW播放器),则需要mp3文件的实际链接或其他任何内容,则可以附加文本“&type=.mp3”,以便最终链接变为:“www.example.com/xfer.php?file=34842ffjfjxfh&type=.mp3”。这样,它看起来就像以mp3扩展名结尾,而不会影响文件链接。


答案 2

使用您的 httpd 日志文件。安装 http://awstats.sourceforge.net/


推荐