Как загрузить все изображения в формате JPG с помощью Sonata Media Bundle Symfony2.3

На данный момент я могу загружать изображения в актуальном формате. Но мне нужно скачать все формы изображений только в формате 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;
}

Может кто-нибудь помочь мне здесь?

0

Решение

Замените следующую строку в вашем коде

$response->setContent(readfile($filePath));

в

$response->setContent(file_get_contents($filename));

дайте мне знать, если возникли проблемы

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]