5

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;
    }

しかし今は、添付コンテンツの処理を使用する代わりに、ファイルをクライアントにストリーミングしたいと考えています。基本的に、サーバー上にある実際の mp3 を指しているかのように、クライアント側でアクセスしたいと考えています。これを行う方法を知っている人はいますか?

4

1 に答える 1

5

streamwrapper を使用してこれを解決しました...これは簡単でした。

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

$response = new \Symfony\Component\HttpFoundation\BinaryFileResponse($filepath);
于 2014-04-24T21:13:18.550 に答える