当在网站上点击链接时,如何在Symfony2中写入数据库?

时间:2011-12-01 09:33:40

标签: php symfony doctrine-orm

在我正在开发的项目中,客户要求每次用户点击要下载的链接(他们将下载视频或mp3)时,应该保留一份记录下载了哪些内容的日志。当

我在数据库中设置了一个表来记录用户ID,文件ID以及下载日期。但是,我不知道如何做到这一点,因为链接基本上是一个标签(显然)。

实现这一目标的最佳方法是什么?

2 个答案:

答案 0 :(得分:3)

可能最简单的解决方案是编写简单的onclick ajax事件。

如果你想要noscript解决方案,你将不得不创建一些下载包装器,它将为你提供适当的文件。只需创建特殊路由和控制器(例如/ downloads / filename),为此增加下载量表并返回资产而不是html响应。不要忘记设置正确的Content-Type标题。

还有IgorwFileServeBundle可以帮助你加载。

答案 1 :(得分:1)

您不必链接到MP3文件,而是必须通过写入数据库的PHP脚本汇集下载,然后使用正确的标题发送MP3数据。为获得最佳性能,请使用“X-Sendfile”标头而不是PHP readfile函数。

或者,您可以为Symfony控制台命令行工具设置一个cron作业,该工具可解析Apache访问日志并在遇到MP3文件时写入数据库。