feat: streamlined filenames of downloaded teamer documents

addresses #8698updx6
This commit is contained in:
Björn Fromme
2025-04-24 10:03:29 +02:00
parent fb0f8054d5
commit 3646661fed
3 changed files with 52 additions and 14 deletions
+12 -5
View File
@@ -3,6 +3,7 @@
namespace App\Controller\Common;
use App\Entity\Upload;
use App\Service\Upload\DownloadNamer;
use App\Service\Upload\UploadHandler;
use Doctrine\ORM\EntityManagerInterface;
use Psr\Log\LoggerInterface;
@@ -29,13 +30,19 @@ class DownloadController extends AbstractController
public function index(Upload $upload, Request $request): Response
{
$path = $this->uploadHandler->getUploadFilepath($upload);
$extension = pathinfo($path, PATHINFO_EXTENSION);
// adopt potentially changed file extension
$originalFilename = $upload->getOriginalFilename();
if (true === in_array($upload->getType(), [Upload::TYPE_INVOICE, Upload::TYPE_CONTRACT])) {
$namer = new DownloadNamer();
$teamer = $upload->getOwner()->getTeamer();
$originalFilename = $namer->nameForTeamer($upload, $teamer);
} else {
// adopt potentially changed file extension
$extension = pathinfo($path, PATHINFO_EXTENSION);
$originalFilename = $upload->getOriginalFilename();
if (false === str_ends_with($originalFilename, $extension)) {
$originalFilename = $originalFilename.'.'.$extension;
if (false === str_ends_with($originalFilename, $extension)) {
$originalFilename = $originalFilename.'.'.$extension;
}
}
$inline = (bool) $request->get('inline');