在我正在开发的项目中,客户要求每次用户点击要下载的链接(他们将下载视频或mp3)时,应该保留一份记录下载了哪些内容的日志。当
我在数据库中设置了一个表来记录用户ID,文件ID以及下载日期。但是,我不知道如何做到这一点,因为链接基本上是一个标签(显然)。
实现这一目标的最佳方法是什么?
答案 0 :(得分:3)
可能最简单的解决方案是编写简单的onclick ajax事件。
如果你想要noscript解决方案,你将不得不创建一些下载包装器,它将为你提供适当的文件。只需创建特殊路由和控制器(例如/ downloads / filename),为此增加下载量表并返回资产而不是html响应。不要忘记设置正确的Content-Type
标题。
还有IgorwFileServeBundle
可以帮助你加载。
答案 1 :(得分:1)
您不必链接到MP3文件,而是必须通过写入数据库的PHP脚本汇集下载,然后使用正确的标题发送MP3数据。为获得最佳性能,请使用“X-Sendfile”标头而不是PHP readfile
函数。
或者,您可以为Symfony控制台命令行工具设置一个cron作业,该工具可解析Apache访问日志并在遇到MP3文件时写入数据库。