带Gaufrette的Symfony音频流

jsp*_*iri 5 symfony gaufrette

我正在使用KnpGaufretteBundle来存储音频文件.我能够将给定文件下载到客户端,如下所示:

    $filename = "Somefilename.mp3";

    $fs = $this->filesystemMap->get('media_fs');
    $file = $fs->read($filename);

    if($file){
        //Create And Return Response
        $response = new Response();

        $disp = $response->headers->makeDisposition(
            ResponseHeaderBag::DISPOSITION_ATTACHMENT, 
            $variant->getFileName()
        );

        $response->headers->set('Content-Length', $fs->size($filename));
        $response->headers->set('Accept-Ranges', 'bytes');
        $response->headers->set('Content-Transfer-Encoding', 'binary');
        $response->headers->set('Content-Type', 'application/octet-stream');
        $response->headers->set('Content-Disposition', $disp);
        $response->setContent($file);

        return $response;
    }
Run Code Online (Sandbox Code Playgroud)

但是现在我还想将文件流式传输到客户端,而不是使用附件内容配置.基本上我想访问它客户端,就好像我指着我的服务器上的实际mp3.有谁知道如何做到这一点?

jsp*_*iri 5

我通过使用streamwrapper解决了这个问题......这很简单.

$filepath = 'gaufrette://myFileSystemName/'.$filename;

$response = new \Symfony\Component\HttpFoundation\BinaryFileResponse($filepath);
Run Code Online (Sandbox Code Playgroud)