fix: adopt potentially changed file extension when downloading
This commit is contained in:
@@ -59,6 +59,12 @@ class BatchDownloadController extends AbstractController
|
|||||||
/** @var Upload $upload */
|
/** @var Upload $upload */
|
||||||
$filename = $upload->getOriginalFilename();
|
$filename = $upload->getOriginalFilename();
|
||||||
$filepath = $this->uploadHandler->getUploadFilepath($upload);
|
$filepath = $this->uploadHandler->getUploadFilepath($upload);
|
||||||
|
$extension = pathinfo($filepath, PATHINFO_EXTENSION);
|
||||||
|
|
||||||
|
// adopt potentially changed file extension
|
||||||
|
if (false === str_ends_with($filename, $extension)) {
|
||||||
|
$filename = $filename.'.'.$extension;
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$zip->addFileFromPath(fileName: $filename, path: $filepath);
|
$zip->addFileFromPath(fileName: $filename, path: $filepath);
|
||||||
@@ -79,4 +85,4 @@ class BatchDownloadController extends AbstractController
|
|||||||
|
|
||||||
return $response;
|
return $response;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,7 +29,15 @@ class DownloadController extends AbstractController
|
|||||||
public function index(Upload $upload, Request $request): Response
|
public function index(Upload $upload, Request $request): Response
|
||||||
{
|
{
|
||||||
$path = $this->uploadHandler->getUploadFilepath($upload);
|
$path = $this->uploadHandler->getUploadFilepath($upload);
|
||||||
|
$extension = pathinfo($path, PATHINFO_EXTENSION);
|
||||||
|
|
||||||
|
// adopt potentially changed file extension
|
||||||
$originalFilename = $upload->getOriginalFilename();
|
$originalFilename = $upload->getOriginalFilename();
|
||||||
|
|
||||||
|
if (false === str_ends_with($originalFilename, $extension)) {
|
||||||
|
$originalFilename = $originalFilename.'.'.$extension;
|
||||||
|
}
|
||||||
|
|
||||||
$inline = (bool) $request->get('inline');
|
$inline = (bool) $request->get('inline');
|
||||||
$disposition = $inline ? ResponseHeaderBag::DISPOSITION_INLINE : ResponseHeaderBag::DISPOSITION_ATTACHMENT;
|
$disposition = $inline ? ResponseHeaderBag::DISPOSITION_INLINE : ResponseHeaderBag::DISPOSITION_ATTACHMENT;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user