diff --git a/lib/Alchemy/Phrasea/Controller/AbstractDelivery.php b/lib/Alchemy/Phrasea/Controller/AbstractDelivery.php index edce950bd1..95f57fd220 100644 --- a/lib/Alchemy/Phrasea/Controller/AbstractDelivery.php +++ b/lib/Alchemy/Phrasea/Controller/AbstractDelivery.php @@ -34,11 +34,14 @@ abstract class AbstractDelivery { $mediaSubdefinition = $record->get_subdef($subdef); + $filename = $request->get("filename") ?: $mediaSubdefinition->get_file(); + $pathOut = $this->tamperProofSubDefinition($mediaSubdefinition, $watermark, $stamp); $disposition = $request->query->get('download') ? DeliverDataInterface::DISPOSITION_ATTACHMENT : DeliverDataInterface::DISPOSITION_INLINE; - $response = $this->deliverFile($pathOut, $mediaSubdefinition->get_file(), $disposition, $mediaSubdefinition->get_mime()); + // nb: $filename will be sanitized, no need to do it here + $response = $this->deliverFile($pathOut, $filename, $disposition, $mediaSubdefinition->get_mime()); if (in_array($subdef, array('document', 'preview'))) { $response->setPrivate();