2014-04-23 1 views
5

오디오 파일을 저장하기 위해 KnpGaufretteBundle을 사용하고 있습니다.Gaufrette가있는 Symfony 오디오 스트림

$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를 가리키는 것처럼 클라이언트 측에 액세스하려고합니다. 누구든지 어떻게 할 수 있는지 알고 있습니까?

답변

5

스트림 래퍼를 사용하여이 문제를 해결했습니다 ... 쉽습니다.

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

$response = new \Symfony\Component\HttpFoundation\BinaryFileResponse($filepath);