Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 当在网站上单击链接时,如何在Symfony2中写入数据库?_Php_Symfony_Doctrine Orm - Fatal编程技术网

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

Php 当在网站上单击链接时,如何在Symfony2中写入数据库?,php,symfony,doctrine-orm,Php,Symfony,Doctrine Orm,在我正在从事的一个项目中,客户机要求用户每次单击要下载的链接(他们将下载视频或mp3)时,都应保存一份日志,记录谁下载了内容以及何时下载 我在数据库中设置了一个表来记录用户ID、文件ID和下载日期。然而,我不知道如何做到这一点,因为链接基本上是一个标签(显然) 实现这一点的最佳方法是什么?您不需要链接到MP3文件,而需要通过一个PHP脚本将下载内容写入数据库,然后发送带有正确标题的MP3数据。为了获得最佳性能,请使用“”标题,而不是PHPreadfile函数 或者,您可以为Symfony控制台命

在我正在从事的一个项目中,客户机要求用户每次单击要下载的链接(他们将下载视频或mp3)时,都应保存一份日志,记录谁下载了内容以及何时下载

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


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

您不需要链接到MP3文件,而需要通过一个PHP脚本将下载内容写入数据库,然后发送带有正确标题的MP3数据。为了获得最佳性能,请使用“”标题,而不是PHP
readfile
函数


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

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

如果您想要noscript解决方案,您必须创建一些下载包装器,这将为您提供适当的文件。只需创建特殊的路由和控制器(例如/downloads/filename),增加下载量,并返回资产而不是html响应。不要忘记设置适当的
内容类型
标题tho

还有一种方法可以帮助您加载