Возврат файла в контроллере в Symfony
Как в контроллере отдать файл в качестве ответа:
/**
* Отдаем файл на скачивание
* @param \SplFileInfo $fileInfo
* @param string|null $fileName
* @return BinaryFileResponse
*/
public function createFileResponse(\SplFileInfo $fileInfo, ?string $fileName = null): BinaryFileResponse
{
$response = new BinaryFileResponse($fileInfo->getRealPath());
$mimeTypeGuesser = new FileinfoMimeTypeGuesser();
if ($mimeTypeGuesser->isGuesserSupported()) {
$response->headers->set('Content-Type', $mimeTypeGuesser->guessMimeType($fileInfo->getRealPath()));
} else {
$response->headers->set('Content-Type', 'text/plain');
}
if (!$fileName) {
$fileName = $fileInfo->getFilename();
}
$response->setContentDisposition(ResponseHeaderBag::DISPOSITION_ATTACHMENT, $fileName);
return $response;
}