Я использую пакет VichUploaderBundle в моем проекте Symfony 4 для загрузки вложения. Загрузка работает хорошо, но мне надоело отображать эти вложения.
Я использую плагин "ekko-lightbox" (или другой плагин, если вам лучше знать?), Чтобы отображать вложения непосредственно пользователю, не выходя из страница, но я получаю много странных символов ���.
Вот мой код (я использую контроллер, чтобы проверить, есть ли у пользователя права на скачивание файла):
/**
* @Route("/ticket/attachment/{id}", name="ticketing_attachments", methods="GET")
* @IsGranted("ROLE_USER")
*/
public function getTicketAttachment(TicketAttachment $ticketAttachment, DownloadHandler $downloadHandler, TicketManager $ticketManager): Response
{
if(!$ticketManager->hasPermissionViewTicket($ticketAttachment->getTicket(), $this->getUser())) {
throw new HttpException(404, 'La page que vous avez demandée n\'existe pas.', null, [], 1);
}
return $downloadHandler->downloadObject($ticketAttachment, $fileField = 'file', $objectClass = null, $fileName = null, $forceDownload = false);
}
Twig:
{% if ticket.attachments|length > 0 %}
<hr/>
{% for attachment in ticket.attachments %}
<span class="glyphicon glyphicon-paperclip"></span>
<a href="{{ path('ticketing_attachments', {id: attachment.id}) }}" data-toggle="lightbox">{{ attachment.name }}</a>
{% endfor %}
{% endif %}
Когда я go прямо на маршрут "/ ticket / attachment / {id}", вложение отображается, но с плагином ekko-lightbox вот что я получаю ( много странных символов ���):
проблема с лайтбоксом: