2015-11-02 83 views
1

我需要使用BinaryFileResponse來正確處理長度標題和合並視頻。另外我希望用戶允許配置其他存儲(S3,Dropbox)。 flysystem readStream方法將返回一個resource,但BinaryFileResponse需要一個string路徑。什麼是處理這個最好的方法?首先將整個文件下載到服務器直到響應?BinaryFileResponse來自Flysystem的php資源

回答

2

您可以對此使用StreamedResponse類。你必須自己做一些數據連線,但它非常簡單。例如,此代碼用於啓用PDF的「強制下載」。

return new StreamedResponse(function() use ($stream) { 
    fpassthru($stream); 
    exit(); 
}, 200, [ 
    'Content-Transfer-Encoding', 'binary', 
    'Content-Type' => 'application/pdf', 
    'Content-Disposition' => sprintf('attachment; filename="%s.pdf"', $filename), 
    'Content-Length' => fstat($stream)['size'], 
]);