Hallo zusammen,
ich habe zu den Produkten einen neuen Tab erstellt, der zu den Artikeln Dokumente auflistet, die per Link aufgerufen werden sollen.
Wenn ich den Link allerdings ausführe, lande ich immer auf der Startseite. In der Log-Datei gibt es keine Fehlermeldungen.
Die Prozedur für das Dokument sieht so aus:
/**
* @Route("/getitemfile", name="getitemfile", methods={"GET"})
* @RouteScope(scopes={"storefront"})
*/
public function getitemfile(Request $request): JsonResponse
{
// $file ist ein PDF, das auch geladen wird, den Code habe ich hier ausgeblendet
$info = pathinfo($file);
$filename = urlencode($info['basename']);
// dump(substr(file_get_contents($file),0,99));
// die($filename);
$response = new Response(file_get_contents($file));
$response->headers->set('Content-Type', 'application/pdf');
$response->headers->set('Content-Disposition', $response->headers->makeDisposition(
ResponseHeaderBag::DISPOSITION_INLINE,
$filename
));
return $response;
}
In der routes.xml ist eingetragen:
<route id="getitemfile" path="/getitemfile" methods="GET">
<default key="_controller">MyExtension\Storefront\Controller\MyController::getitemfile</default>
</route>
Grundsätzlich funktioniert alles, bis auf die Tatsache, dass das PDF nicht angezeigt wird und stattdessen auf die Startseite geleitet wird.
Kann es sein dass die Seite trotzdem gerendert wird und wenn ja, wie verhindere ich das?