Я использую пакет 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);
}
Ветка:
{% 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 %}
Когда я перехожу прямо к маршруту "/ ticket / attachment / {id}", вложение отображается, но с плагином ekko-lightbox я получаю вот что (много странных символов ���):