跟踪文件下载

时间:2012-01-18 07:58:11

标签: php symfony download

我想在symfony2中创建一个区域,其中包含用户可以下载的文件列表。

我希望能够跟踪每个文件的下载次数。

任何人都可以了解我如何实现这一目标吗?

2 个答案:

答案 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