Я занимаюсь разработкой сервиса, где пользователи смогут получать доступ только к контенту и только если они заплатили за контент. поэтому я загружаю контент в каталог хранилища и для доступа к контенту я создал такие маршруты, как это ..
Route::any('storage/course/videos/{video_id}',['uses'=>'StorageController@video','middleware'=>'auth']);
, а затем в контроллере хранилища я получаю файл и возвращаю его как ответ, подобный этому ...
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;
}
Этот прием работает, как и ожидалось, для изображений, но не для видео. Даже загрузка видео работает, но браузер не может воспроизводить видео каждый раз. Сначала я подумал, что может отсутствовать какой-то заголовок, но поэтому я попытался некоторые заголовки, но это не сработало.
Так же, кто-нибудь делает то, что я делаю неправильно, И даже возможно ли это сделать, ИЛИ любой другой метод для достижения этой цели
Заранее спасибо !!