0

至于现在,我能够以实际格式下载图像。但我只需要以 JPG 格式下载所有形式的图像。

配置.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

图片控制器.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;
}

任何人都可以在这里帮助我吗?

4

1 回答 1

0

替换代码中的以下行

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

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

让我知道是否面临问题

于 2016-01-06T06:13:42.693 回答