На данный момент я могу загружать изображения в актуальном формате. Но мне нужно скачать все формы изображений только в формате JPG.
config.yml
sonata_media:
default_context: default
db_driver: doctrine_orm
contexts:
default:
providers:
- sonata.media.provider.image
- sonata.media.provider.file
formats:
xsmall: { height: 50 , quality: 70}
small: { width: 100 , quality: 70}
big: { width: 500 , quality: 70}
cdn:
server:
path: /uploads/media
filesystem:
local:
directory: %kernel.root_dir%/../web/uploads/media
create: false
PictureController.php
public function downloadPictureAction(Picture $picture)
{
$media = $picture->media;
$mediaManager = $this->get('sonata.media.pool');
$provider = $mediaManager->getProvider($media->getProviderName());
$publicUrl = $provider->generatePublicUrl($media, 'reference');
$webDirectory = $this->container->getParameter('kernel.root_dir').'/../web';
$filePath = $webDirectory.$publicUrl;
$response = new Response();
$response->headers->set('Cache-Control', 'private');
$response->headers->set('Content-type', mime_content_type($filePath));
$response->headers->set('Content-Disposition', 'attachment; filename="'.basename($filePath).'";');
$response->headers->set('Content-length', filesize($filePath));
$response->sendHeaders();
$response->setContent(readfile($filePath));
return $response;
}
Может кто-нибудь помочь мне здесь?
Замените следующую строку в вашем коде
$response->setContent(readfile($filePath));
в
$response->setContent(file_get_contents($filename));
дайте мне знать, если возникли проблемы
Других решений пока нет …