我想在symfony2中创建一个区域,其中包含用户可以下载的文件列表。
我希望能够跟踪每个文件的下载次数。
任何人都可以了解我如何实现这一目标吗?
答案 0 :(得分:1)
以简单的方式在您的文件列表中,您必须设置控制器的URL,这将计算下载次数,而不是打印直接链接到文件。
{# list of files in template %}
{% for file in files %}
<a href="{% path('counting', {'id': file.id}) %}">{{ file.name }}</a>
{% endfor %}
// Controller
/**
* Counting the number of file downloads
*
* @Route("/counting/{id}", name="counting", requirements={"id" = "\d+"})
* @Template()
*/
public function countingAction($id)
{
$em = $this->getDoctrine()->getEntityManager();
$file = $em->getRepository('MyBundle:File')->find($id);
$count = $file->getCount();
$file->setCount($count + 1);
$em->persist($entity);
$em->flush();
return array('file' => $file);
}
{# final file page in template #}
<a href="{{ file.url }}">{{ file.name }}</a>
答案 1 :(得分:-1)
使用Doctrine Entity - 本文中的一些信息“How to handle file upload”