我想阻止那些不付费的人访问视频播放列表,并将其仅显示给经过身份验证的付费用户。我不知道如何在不公开的情况下访问私人存储中的视频,我尝试了一些代码,但它不起作用。这是我的代码:
路线:
Route::get('storage/uploads/videos/{video}', [PrivateController::class, 'get'])->name("getVideo");
控制器:
class PrivateController extends Controller
{
public function get($video) {
$video = Storage::disk('private')->get("/videos/". $video);
$response = Response::make($video, 200);
$response->header('Content-Type', 'video/mp4');
return $response;
}
}
当我转储并死掉这一行时,我得到空值:
$video = Storage::disk('private')->get("/videos/". $video);
我尝试了一些代码,但没有成功
$video = Storage::disk('private')->get("/videos/". $video);
$response = Response::make($video, 200);
$response->header('Content-Type', 'video/mp4');
return $response;
除
storage/app/public
之外的所有文件都是私有的。
将视频文件放入
storage/app/videos/
。
return response()->file(Storage::path('videos/'.$video), ['Content-Type' => 'video/mp4']);
// routes/web.php
Route::get('videos/{video}', [PrivateController::class, 'get']);