دانلود فایل برای یکبار

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

ممنون میشم ترفندی بهم بگید
 

spsgorgan

Active Member
1 : صبور باشيد !
2 : راه كه هست . مثلا به كوكي يا ثبت آي پي كه با اين اينترنت ايران ايده آي پي عملي نيست . ولي با كوكي شايد بتوني كار كني . در هر بار دريافت يك كوكي ثبت كن .
 
من مشکل اصلی بعد از دانلود
یعنی وقتی که لینک به user داده شد و اون دانلود کرد میخوام بفهم که اون دانلود کرده یا نه اگه دانلود کامل بوده فایل حذف بشه که لینک سوخت بشه و گرنه من به ازای هر id یک لینک مستقیم برای user میفرستم ولی میخوام که اون یکبار بتونه از این دانلود استفاده کنه ولینک پخش نشه چون اگه با دانلود منجر اون دانلود کنه بازهم امکان دریافت مجدد داره
 

bamshad

Well-Known Member
برخلاف امضاء ت فکر کنم این بار همچین کاری نمیشه کرد
 

tabib_m

Member
اگه آدرس فایل مورد نظر داینامیک باشه (مثل خود php) میتونی توی دیتابیس ثبت کنی که این فایل داونلود شد ، و بعد از اون دیگه اجازه ی دسترسی ندی
اگر نه ، که فکر نمیکنم بشه کاریش کرد.
 

NabiKAZ

Well-Known Member
سلام ،

ببین اینکه بعد از دون لود فایل اون رو حذف کنی اصلا ایده خوبی نیست چون به هر صورت شما که نمیتونید تشخیص بدید فایل کامل دون لود شده یا نشده . فقط میتونی تشخیص بدی که پروسه دون لود آغاز شده یا خیر. پس بهتره که دسترسی برای دون لود اون فایل رو برای کاربر خاصی که در نظر داری باز بزاری تا در صورت قطع اتصال از اینترنت مجدداً بتونه اون رو دون لود کنه و مشکلی پیش نیاد.
اما کاری که بایدکنید اینه که دسترسی دون لود رو فقط به اون شخص خاص بدید و کاربران دیگر نتونن توسط اون لینک فایل رو دون لود کنند.
شما در نوشته هاتون صحبت از کاربر و id کردید . اینطور حدس زدم که سایت شما دارای کاربران مشخصی است. پس میتونید تشخیص بدید که هر شخص با چه user یی لوگین کرده است. بسیار خب! بهترین حالت این است که ملاک رو کاربر بزارید( نه ای پی و نه کوکی و نه... که دوستان اشاره کردند هر کدون مشکلات خاص خودشون رو داره)
حال کاری که شما باید بکنید اینه که برای فایل یک نام رندم طولانی (مثلا هش شده) انتخاب کنید و اون رو در مسیری که نشه حدس زد قرار بدید.
سپس یک فایل php میسازید و این کد رو در اون قرار میدید:
PHP:
		header("Content-disposition: filename=$filename");
		header("Content-type: application/octetstream");
		header("Pragma: no-cache");
		header("Expires: 0");
شما نام و مسیر فایل رو با filename$ جایگزین میکنید.
توجه کنید که درست قبل از این دستورات باید سطح دسترسی کاربر چک بشه و در صورت صحت دسترسی خطوط بالا اجرا بشن.

اگر مشکلی بود درخدمتیم.
نبی
 

جدیدترین ارسال ها

بالا