Возврат файла в контроллере в 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;
}

Полезные ссылки

Тэги:

Тэг в списке: