چک کردن سطح دسترسی برای نمایش ویدیو

3 سال پیش توسط ندا طیبی آپدیت شد
آفلاین
user-avatar
ندا طیبی ( 5000 تجربه )
3 سال پیش

لینک کوتاه اشتراک گذاری

0

سلام
من یه ویدیو رو سایتم آپلود کردم به فرض به ادرس sample.com/movie/test.mp4 و میخوام این لینک به صورت مستقیم برای کاربر هایی که دسترسی لازم رو ندارن نمایش داده نشه ، و نتونن به طور مستقیم با داشتن این لینک ویدئو رو دانلود کنن.
برای view ای که کد نمایش این ویدیو داخل نوشته شده هست این دسترسی با میدلور چک شده اما میخوام برای لینک مستقیم ویدیو هم این دسترسی چک بشه که کسی با inspect element نتپنه لینک و برداره و به دیگران بده.
این هم کدی هست که داخل ویو برای نمایش ویدوئو قرار داده شده:
<source src="{{url('movie/intro.ogv#t=0.1')}}" type="video/ogg">

ممنون میشم راهنماییم بفرمایید

آفلاین
user-avatar
سجاد ( 15654 تجربه )
3 سال پیش
تخصص : برنامه نویس

لینک کوتاه اشتراک گذاری

1

سلام
فایل رو در پوشه ی storage آپلود کنید و در مرحله بعد در router مانند زیر آدرس دهی کنید:

Route::get('/attachments/video/{type}/{filename}{extension?}', '[email protected]')->where([
    'filename'  => "[a-zA-Z0-9_-]+",
    'extension' => '\..+',
]);

حالا یک کنترلر با اسم VideoController ایجاد کنید و تابعی مانند زیر اضافه کنید:

    public function index( $type, $filename, $extension = NULL ) {

        $path = storage_path() . "/video/$type/" . $filename . $extension;
        $exists = File::exists($path);
        if (!$exists) {
            $path = storage_path() . "/video/cover/notfound.jpg";
        }
        $file = File::get($path);
        $type = File::mimeType($path);
        $response = Response::make($file, 200);
        $response->header("Content-Type", $type);

        return $response;
    }

این کلیت ایجاد لینک دسترسی به فایل هاست.
کافی هست در مرحله ی آخر سطح دسترسی هایی که لازم دارید رو در تابع پیاده سازی کنید.

آفلاین
user-avatar
ندا طیبی ( 5000 تجربه )
3 سال پیش

لینک کوتاه اشتراک گذاری

0

بابت پاسخی که دادید خیلی ممنونم

برای ارسال پاسخ لازم است، ابتدا وارد سایت شوید.