ندا طیبی
7 سال پیش توسط ندا طیبی مطرح شد
2 پاسخ

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

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

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


ثبت پرسش جدید
سجاد
تخصص : برنامه نویس
@sajaddp 7 سال پیش مطرح شد
1

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

Route::get('/attachments/video/{type}/{filename}{extension?}', 'VideoController@index')->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;
    }

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


ندا طیبی
@tayebi.neda 7 سال پیش مطرح شد
0

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


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام