ali kiani
4 سال پیش توسط ali kiani مطرح شد
3 پاسخ

لینک دانلود

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


ثبت پرسش جدید
سیدعلی موسوی
تخصص : سی شارپ و پی اچ پی
@juza66 4 سال پیش آپدیت شد
0

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

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


ali kiani
@a.kiani110 4 سال پیش مطرح شد
0

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


سیدعلی موسوی
تخصص : سی شارپ و پی اچ پی
@juza66 4 سال پیش آپدیت شد
1

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

        $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="/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));
      }
}

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

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