Как написать в базу данных в Symfony2, когда на сайт нажимают ссылку? - PullRequest
2 голосов
/ 01 декабря 2011

В проекте, над которым я работаю, клиенту требовалось, чтобы каждый раз, когда пользователь нажимает ссылку для загрузки (он будет загружать видео или mp3), должен вестись журнал того, кто что загрузил и когда.

В моей базе данных есть таблица, настроенная для записи идентификатора пользователя, идентификатора файла и даты его загрузки. Однако я не знаю, как это сделать, поскольку ссылка - это, по сути, тег (очевидно).

Каков наилучший способ достичь этого?

Ответы [ 2 ]

3 голосов
/ 01 декабря 2011

Вероятно, самым простым решением было бы написать простое событие onjlick ajax.

Если вам нужно решение для noscript, вам нужно будет создать какую-нибудь обертку для загрузки, которая предоставит вам нужный файл. Просто создайте специальный маршрут и контроллер (например, / downloads / filename), увеличьте счетчик загрузки для этого и верните актив вместо ответа html. Не забудьте установить правильный заголовок Content-Type.

Также есть IgorwFileServeBundle, которые могут помочь вам загрузить.

1 голос
/ 01 декабря 2011

Вместо того, чтобы ссылаться на файл MP3, вам нужно будет направить загрузку через скрипт PHP, который записывает в базу данных, а затем отправляет данные MP3 с правильными заголовками.Для максимальной производительности вместо функции PHP readfile используйте заголовок " X-Sendfile ".

В качестве альтернативы вы можете настроить задачу cron для инструмента командной строки консоли Symfony, который анализируетЖурнал доступа Apache и запись в БД при обнаружении файла MP3.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...