我一直在開發(fā)一項(xiàng)服務(wù),用戶只有在付費(fèi)后才能訪問內(nèi)容。所以我將內(nèi)容上傳到存儲(chǔ)目錄并為了訪問內(nèi)容我創(chuàng)建了這樣的路由..Route::any('storage/course/videos/{video_id}',['uses'=>'StorageController@video','middleware'=>'auth']);然后在存儲(chǔ)控制器中,我正在獲取文件并將其作為響應(yīng)返回......public function video($video_id){ //Some logic for subscription check goes here $path = storage_path('app/public/course/videos/'.$video_id); // return $path; if (!File::exists($path)) { abort(404); } $file = File::get($path); $type = File::mimeType($path); $response = Response::make($file, 200); $response->header("Content-Type", $type); // $response->header("Accept-Ranges", 'bytes'); //$response->header("Content-Length", 51265590); // $response->header("Content-Disposition" ,"attachment"); //Triggers Download return $response; }這個(gè)技巧對圖像按預(yù)期工作,但對視頻無效。即使視頻下載工作正常,但瀏覽器每次都無法播放視頻。最初我認(rèn)為可能缺少一些標(biāo)題,但所以我嘗試了一些標(biāo)題但它沒有工作.那么我做錯(cuò)了什么或者是否有可能這樣做或任何其他技術(shù)來實(shí)現(xiàn)這一點(diǎn)
1 回答

慕斯709654
TA貢獻(xiàn)1840條經(jīng)驗(yàn) 獲得超5個(gè)贊
它在使用我從這里https://gist.github.com/vluzrmos/d5682ad426525196d069獲得的附加 VideoStream 類后工作
public function video($video_id){
$path = storage_path('app/public/course/videos/'.$video_id);
if (!File::exists($path)) {
abort(404);
}
$stream = new \App\Http\VideoStream($path);
return response()->stream(function() use ($stream) {
$stream->start();
});
}
- 1 回答
- 0 關(guān)注
- 109 瀏覽
添加回答
舉報(bào)
0/150
提交
取消