2014-04-23 19 views
5

Ses dosyalarını saklamak için KnpGaufretteBundle kullanıyorum.Symfony Audio Stream ile Gaufrette

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

Ama şimdi de yerine eki içerik eğilim kullanmak yerine, müşteriye dosya akışı istiyorum: Böyle müşteriye verilen bir dosyayı indirmek mümkün duyuyorum. Temelde, istemciye, sunucumda oturan gerçek bir mp3'e işaret ediyormuş gibi erişmek istiyorum. Bunun nasıl yapılacağını bilen var mı?

cevap

5

Bunu streamwrapper kullanarak çözdüm ... bu kolaydı.

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

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