✨ Prévisualisation du fichier si clic sur le nom du fichier + ajout icone voir
This commit is contained in:
parent
7141c8d1f3
commit
0aecfd62eb
@ -89,7 +89,10 @@ class FilesController extends AbstractController
|
||||
'last_modified' => $file['lastModified'],
|
||||
'size' => $file['fileSize'] ?? null,
|
||||
'url' => 'file' === $file['type']
|
||||
? $this->generateUrl('app_files_app_file_proxy', ['filename' => $file['path']], UrlGeneratorInterface::ABSOLUTE_URL)
|
||||
? $this->generateUrl('app_files_app_file_proxy', ['filename' => $file['path'], 'preview' => false], UrlGeneratorInterface::ABSOLUTE_URL)
|
||||
: $this->generateUrl('app_files_index', ['path' => $file['path']]),
|
||||
'previewUrl' => 'file' === $file['type']
|
||||
? $this->generateUrl('app_files_app_file_proxy', ['filename' => $file['path'], 'preview' => true], UrlGeneratorInterface::ABSOLUTE_URL)
|
||||
: $this->generateUrl('app_files_index', ['path' => $file['path']]),
|
||||
];
|
||||
}
|
||||
@ -114,7 +117,7 @@ class FilesController extends AbstractController
|
||||
* @throws FilesystemException
|
||||
*/
|
||||
#[Route('/file-proxy', name: 'app_file_proxy')]
|
||||
public function fileProxy(Filesystem $defaultAdapter, #[MapQueryParameter('filename')] string $filename)
|
||||
public function fileProxy(Filesystem $defaultAdapter, #[MapQueryParameter('filename')] string $filename, #[MapQueryParameter('preview')] bool $preview)
|
||||
{
|
||||
$file = $this->normalizePath($filename);
|
||||
|
||||
@ -134,6 +137,7 @@ class FilesController extends AbstractController
|
||||
$mimetype = 'application/octet-stream';
|
||||
}
|
||||
|
||||
|
||||
$response = new StreamedResponse(static function () use ($file, $defaultAdapter): void {
|
||||
$outputStream = fopen('php://output', 'w');
|
||||
$fileStream = $defaultAdapter->readStream($file);
|
||||
@ -141,11 +145,14 @@ class FilesController extends AbstractController
|
||||
});
|
||||
|
||||
$response->headers->set('Content-Type', $mimetype);
|
||||
$disposition = HeaderUtils::makeDisposition(
|
||||
HeaderUtils::DISPOSITION_ATTACHMENT,
|
||||
basename($file)
|
||||
);
|
||||
$response->headers->set('Content-Disposition', $disposition);
|
||||
|
||||
if (!$preview) {
|
||||
$disposition = HeaderUtils::makeDisposition(
|
||||
HeaderUtils::DISPOSITION_ATTACHMENT,
|
||||
basename($file)
|
||||
);
|
||||
$response->headers->set('Content-Disposition', $disposition);
|
||||
}
|
||||
|
||||
return $response;
|
||||
}
|
||||
|
@ -54,7 +54,7 @@
|
||||
{% else %}
|
||||
<twig:ux:icon name="line-md:folder-filled" class="w-6 h-6" />
|
||||
{% endif %}
|
||||
<a class="text-blue-700 dark:text-blue-500 hover:text-blue-900 dark:hover:text-blue-700" href="{{ file.url }}">{{ file.path|basename }}</a>
|
||||
<a class="text-blue-700 dark:text-blue-500 hover:text-blue-900 dark:hover:text-blue-700" href="{{ file.previewUrl }}" {{ file.type == 'file' ? 'target="_blank"' : '' }}>{{ file.path|basename }}</a>
|
||||
</th>
|
||||
<td class="px-6 py-4">
|
||||
{% if file.type == 'file' %}
|
||||
@ -82,6 +82,7 @@
|
||||
</td>
|
||||
<td class="px-6 py-4 flex gap-2 light:text-black">
|
||||
{% if file.type == 'file' %}
|
||||
<a title="Permet de voir le fichier" href="{{ file.previewUrl }}" class="hover:text-blue-700 duration-300"><twig:ux:icon class="w-6 h-6" name="fa6-solid:eye" /></a>
|
||||
<a title="Permet de télécharger le fichier" href="{{ file.url }}" class="hover:text-blue-700 duration-300"><twig:ux:icon class="w-6 h-6" name="fa6-solid:download" /></a>
|
||||
{% if is_granted('file_write', parentDir) %}
|
||||
<a title="Permet de renommer le fichier" href="{{ path('app_files_rename', {
|
||||
|
Loading…
x
Reference in New Issue
Block a user