1

我正在寻找一种向用户发送常规文件(mp3 或图片)的方法,并在不通过 HTML/PHP 页面的情况下计算该文件被访问的次数。

例如,用户将他的浏览器指向 bla.com/file.mp3 并开始下载它,而服务器端脚本将执行诸如将数据保存到数据库之类的操作。

知道我应该从哪里开始吗?

谢谢!

4

3 回答 3

1

您将需要通过一个 php 脚本,您可以做的是将要跟踪的扩展(最好是在文件夹级别)重写为一个 php 脚本,该脚本然后执行您需要的计算并将文件提供给用户。

例如:

如果您想跟踪 /downloads/ 文件夹,您将在您的网络服务器上创建一个重写,以重写所有或仅重写 php 文件的特定扩展,我们将在此示例中调用 proxy.php。

一个示例 uri 将是 proxy.php?file=file.mp3 proxy.php 脚本清理文件参数,检查用户是否有权下载(如果适用),检查文件是否存在,将文件提供给客户端并执行任何后端所需的操作,如数据库更新等。

于 2012-09-21T13:23:53.800 回答
0

你的意思是你不希望你的用户看到一个特定的页面并打断他们的流程吗?如果这样做,您仍然可以通过以下步骤使用 PHP 页面。(我不是最新的 PHP 所以它会是伪代码,但你会明白的)

  • 提供指向您文件的链接(例如)http://example.com/trackedDownloader.php?id=someUniqueIdentifer
  • 在 tracedDownloader.php 文件中,确定与唯一 id 相关的服务器上的真实位置(例如,12345 可以映射到 /uploadedFiles/AnExample.mp3)
  • 在输出中设置适当的内容类型标头。
  • 将请求记录到您的数据库。
  • 直接将文件内容作为页面输出返回。
于 2012-09-21T13:25:07.910 回答
0

您需要扫描日志文件。无论如何,您很可能希望将计数器存储在数据库中?

使用 PHP 提供静态文件有一个很好的解决方案:

https://tn123.org/mod_xsendfile/

于 2012-09-21T13:42:08.727 回答