Files
file-explorer/src/Controller/ServeFileController.php
jank1619 a67b93ac99 Implement image previewing
I have tested this with png and jpeg/jpg which both work but most other image types should work as well.
![image](/attachments/25318577-d48c-4902-93b3-9adbb8b954e7)

Co-authored-by: Jan Klattenhoff <j.klattenhoff@neusta.de>
Reviewed-on: sites/file-explorer#12
Co-authored-by: jank1619 <jan@kjan.email>
Co-committed-by: jank1619 <jan@kjan.email>
2024-12-21 18:12:14 +00:00

29 lines
905 B
PHP

<?php declare(strict_types=1);
namespace App\Controller;
use App\Service\FileSystemService;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\BinaryFileResponse;
use Symfony\Component\HttpFoundation\ResponseHeaderBag;
use Symfony\Component\Routing\Attribute\Route;
class ServeFileController extends AbstractController
{
public function __construct(private FileSystemService $fileSystemService)
{
}
#[Route("/serve/{filePath}", name: "serve_file")]
public function __invoke(string $filePath): BinaryFileResponse
{
$file = $this->fileSystemService->getFile($filePath);
$path = $file->getPath() . '/' . $file->getName();
$response = new BinaryFileResponse($path);
$response->setContentDisposition(ResponseHeaderBag::DISPOSITION_ATTACHMENT, $file->getName());
return $response;
}
}