راکت

لینک دانلود

3 پاسخ

یه سایت آموزشیه میخوام لینک هایی که کاربرا دوره را خرید کردن مختص به همون فرد باشه یعنی لینک دانلود فقط مال همون فرد باشه راهنمایی کنید ممنون

ali kiani
ali kiani
@a.kiani110
ثبت پرسش جدید

پاسخ‌ها

3
سیدعلی موسوی
سیدعلی موسوی
@juza66

تخصص: سی شارپ و پی اچ پی

متوجه منظور شما نشدم؟!
یک سایت آموزشی داری میخوای کاربرانی که تویی دوره شرکت کردن بتونن ویدوها رو دانلود کنند؟!

یک جدول پرداختی داری تویی دوره ها دیگه (Payment)؟! Courses_id و User_id رو توش ذخیره میکنی دیگه؟!
قبل از اینکه بتونه دوره رو دانلود بزنه یا ببینه چک کن ببین تویی جدول پرداختی ها ایا دوره و کاربر وجود داره ؟! خرید اوکیه؟! بعدش بهش دسترسی بده

ali kiani
ali kiani
@a.kiani110

نه دوست عزیز منظورم اینه که هر لینک آموزشی مختص یه کاربر باشه و کاربر دیکه نتونه با همون آدرس دانلود انجام بده
مثلا لینک دانلود یه فایل اموزشی که شما خرید کردی و دانلود انجام دادی من نتونم با همون لینک فایلا دانلود کنم

شاید پاسخ شما همین‌جا باشد

سیدعلی موسوی
سیدعلی موسوی
@juza66

تخصص: سی شارپ و پی اچ پی

خب اینجوری باید بگم که شما لینک دانلود رو به فرض این شکلی مینویسن:

        $timestamp = Carbon::now()->addHours(5)->timestamp;
        $hash_code =  Hash::make('download_' . $request->course_id . \request()->ip() . $timestamp);

در بالا لینکی که ساخته میشه رو فقط کاربری که اون ای پی رو داره میتونه دانلودش کن و براش تایم هم گذاشتیم. شما بدلخواه جای اون ای پی ایدی یوزر رو بذار و سمت چک کردن و اجازه دادن دانلود هم کد زیر رو مینویسی:

<a class="btn btn-primary btn-block btn-lg"  href="https://roocket.ir/download/9?mac=$2y$10$Efpy7balkVOUCY2Z9QdhburRzw7A/j2K5acTjhLNGSp0IzZcpE8Za&t=1579052081">دانلود این قسمت</a>

که این کنترلر اجرا بشه

public function download($id, Request $request)
{
      $hash = 'download_' . $episode->id . $request->ip() .  $request->t;
      if(Hash::check($hash , $request->mac)) {
        return response()->download(storage_path($episode->linkDownload));
      }
}

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

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