fix: ensure url-sage filenames for downloads

This commit is contained in:
Björn Fromme
2024-12-20 17:33:05 +01:00
parent e40da03e3a
commit 89eb081bd6
2 changed files with 20 additions and 6 deletions
@@ -10,6 +10,7 @@ use Symfony\Component\HttpFoundation\HeaderUtils;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
use Symfony\Component\Security\Http\Attribute\IsGranted;
use Symfony\Component\String\Slugger\AsciiSlugger;
class ContractPdfController extends AbstractController
{
@@ -26,12 +27,18 @@ class ContractPdfController extends AbstractController
{
$pdf = $this->renderer->render($disposition);
$teamer = $disposition->getTeamer();
$slugger = new AsciiSlugger('de');
$teamer = $slugger->slug($disposition->getTeamer());
$assignment = $disposition->getAssignment();
$destination = $assignment->getDestination();
$destination = $slugger->slug($assignment->getDestination());
$filename = sprintf('Honorarvertrag_%s_%s.pdf', $teamer, $destination);
$disposition = HeaderUtils::makeDisposition(HeaderUtils::DISPOSITION_ATTACHMENT, $filename, md5($filename));
$disposition = HeaderUtils::makeDisposition(
HeaderUtils::DISPOSITION_ATTACHMENT,
$filename,
md5($filename)
);
$response = new Response($pdf->Output('S'));
$response->setPrivate();
@@ -10,6 +10,7 @@ use Symfony\Component\HttpFoundation\HeaderUtils;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
use Symfony\Component\Security\Http\Attribute\IsGranted;
use Symfony\Component\String\Slugger\AsciiSlugger;
class InvoicePdfController extends AbstractController
{
@@ -26,12 +27,18 @@ class InvoicePdfController extends AbstractController
{
$pdf = $this->renderer->render($disposition);
$slugger = new AsciiSlugger('de');
$teamer = $slugger->slug($disposition->getTeamer());
$assignment = $disposition->getAssignment();
$destination = $assignment->getDestination();
$teamer = $disposition->getTeamer();
$destination = $slugger->slug($assignment->getDestination());
$filename = sprintf('Honorarnote_%s_%s.pdf', $teamer, $disposition->getAssignment()->getDestination());
$contentDisposition = HeaderUtils::makeDisposition(HeaderUtils::DISPOSITION_ATTACHMENT, $filename, md5($filename));
$contentDisposition = HeaderUtils::makeDisposition(
HeaderUtils::DISPOSITION_ATTACHMENT,
$filename,
md5($filename)
);
$response = new Response($pdf->Output('S'));
$response->setPrivate();