✨ 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'],
|
'last_modified' => $file['lastModified'],
|
||||||
'size' => $file['fileSize'] ?? null,
|
'size' => $file['fileSize'] ?? null,
|
||||||
'url' => 'file' === $file['type']
|
'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']]),
|
: $this->generateUrl('app_files_index', ['path' => $file['path']]),
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
@ -114,7 +117,7 @@ class FilesController extends AbstractController
|
|||||||
* @throws FilesystemException
|
* @throws FilesystemException
|
||||||
*/
|
*/
|
||||||
#[Route('/file-proxy', name: 'app_file_proxy')]
|
#[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);
|
$file = $this->normalizePath($filename);
|
||||||
|
|
||||||
@ -134,6 +137,7 @@ class FilesController extends AbstractController
|
|||||||
$mimetype = 'application/octet-stream';
|
$mimetype = 'application/octet-stream';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
$response = new StreamedResponse(static function () use ($file, $defaultAdapter): void {
|
$response = new StreamedResponse(static function () use ($file, $defaultAdapter): void {
|
||||||
$outputStream = fopen('php://output', 'w');
|
$outputStream = fopen('php://output', 'w');
|
||||||
$fileStream = $defaultAdapter->readStream($file);
|
$fileStream = $defaultAdapter->readStream($file);
|
||||||
@ -141,11 +145,14 @@ class FilesController extends AbstractController
|
|||||||
});
|
});
|
||||||
|
|
||||||
$response->headers->set('Content-Type', $mimetype);
|
$response->headers->set('Content-Type', $mimetype);
|
||||||
$disposition = HeaderUtils::makeDisposition(
|
|
||||||
HeaderUtils::DISPOSITION_ATTACHMENT,
|
if (!$preview) {
|
||||||
basename($file)
|
$disposition = HeaderUtils::makeDisposition(
|
||||||
);
|
HeaderUtils::DISPOSITION_ATTACHMENT,
|
||||||
$response->headers->set('Content-Disposition', $disposition);
|
basename($file)
|
||||||
|
);
|
||||||
|
$response->headers->set('Content-Disposition', $disposition);
|
||||||
|
}
|
||||||
|
|
||||||
return $response;
|
return $response;
|
||||||
}
|
}
|
||||||
|
@ -54,7 +54,7 @@
|
|||||||
{% else %}
|
{% else %}
|
||||||
<twig:ux:icon name="line-md:folder-filled" class="w-6 h-6" />
|
<twig:ux:icon name="line-md:folder-filled" class="w-6 h-6" />
|
||||||
{% endif %}
|
{% 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>
|
</th>
|
||||||
<td class="px-6 py-4">
|
<td class="px-6 py-4">
|
||||||
{% if file.type == 'file' %}
|
{% if file.type == 'file' %}
|
||||||
@ -82,6 +82,7 @@
|
|||||||
</td>
|
</td>
|
||||||
<td class="px-6 py-4 flex gap-2 light:text-black">
|
<td class="px-6 py-4 flex gap-2 light:text-black">
|
||||||
{% if file.type == 'file' %}
|
{% 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>
|
<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) %}
|
{% if is_granted('file_write', parentDir) %}
|
||||||
<a title="Permet de renommer le fichier" href="{{ path('app_files_rename', {
|
<a title="Permet de renommer le fichier" href="{{ path('app_files_rename', {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user