روشن فکری بنیان ماست !

ما هرگز نمی گذاریم حوصله شما سربرود !

اللَّهُ نُورُ السَّمَاوَاتِ وَالْأَرْضِ مَثَلُ نُورِهِ کَمِشْکَاةٍ فِیهَا مِصْبَاحٌ الْمِصْبَاحُ فِی زُجَاجَةٍ الزُّجَاجَةُ کَأَنَّهَا کَوْکَبٌ دُرِّیٌّ یُوقَدُ مِن شَجَرَةٍ مُّبَارَکَةٍ زَیْتُونِةٍ لَّا شَرْقِیَّةٍ وَلَا غَرْبِیَّةٍ یَکَادُ زَیْتُهَا یُضِیءُ وَلَوْ لَمْ تَمْسَسْهُ نَارٌ نُّورٌ عَلَی نُورٍ یَهْدِی اللَّهُ لِنُورِهِ مَن یَشَاءُ وَیَضْرِبُ اللَّهُ الْأَمْثَالَ لِلنَّاسِ وَاللَّهُ بِکُلِّ شَیْءٍ عَلِیمٌ ( برخی از خواص آینه ۳۵ سوره نور از کتاب قرآن کریم )
هرگونه کپی برداری از فایل های اختصاصی پیگرد قانونی دارد لذا در صورت کپی مطالب لینک دریافت آن ها را تغییر ندهید .
روشن فکری بنیان ماست !

به نام او که یادش ترنم عارفانه زندگیست . سلام من سید امیرحسین طــاووســی هستم طــراح و برنامه نویس وب . فـعالیتم را در زمینه کــامپـیوتـر قبل از سـال اول دبـسـتـان شـروع کــردم و تا دوره راهنمایی اطلاعات کاملی از این تکنولوژی بدست آوردم . از ان دوره تا کنون در زمینه های مختلف فعالیت می کنم که مهـم ترین آن برنامه نویسی وب است یکی از عواملی که باعث شد تا به این سمت بیام کـدباز بودن زبان های وب هستش و روز به روز به دانستنیهایم در این زمینه می افزایم. شاد و سرزنده باشید , امیر

جستجو در وبلاگ
آخرین نظرات
  • ۲۶ آبان ۹۴، ۲۰:۴۹ - کیری
    *** ** ****

درصد پیشرفت پروژه ها

Projects Progress
اسکریپت اشتراک ویدیو + منتظر بزرگترین سوپرایز وبلاگ من در فروردین ۹۵ باشید۷۹ درصد

دریافت جزیات اسکریپت اشتراک ویدیو

معرفی کلاس دانلود فایل حرفه ای

سه شنبه, ۲۵ شهریور ۱۳۹۳، ۰۸:۴۰ ق.ظ

امروز قصد دارم یک کلاس حرفه ای برای مدیریت و ایجاد محدودیت بر روی لینک فایل به شما معرفی کنم اگر شما هم مدیر سایت یا وبلاگی هستید که با لینک های دانلود و ایجاد محدودیت روی آن ها برای کسب درآمد و غیره مشکل دارید حتما با من همراه شوید تا با این کلاس حرفه ای آشنا شوید . این کلاس با اتصال به دیتابیس عمل می کند به این شکل که ابتدا یک کلید برای لینک فایل شما در دیتابیس می سازد و سپس توسط فایل دیگری که کلید را چک می کند اجازه دانلود می دهد.

 خوب به معرفی دقیق این کلاس می پردازیم ابتدا فایل های پیوست پست را دانلود کنید و سپس یک دیتابیس ایجاد کنید و یا اطلاعات دیتابیس سایت خود را بدهید چون فقط یک تیبل در دیتابیس ایجاد می شود حال فایل config.php را باز کنید و در آن اطلاعات را قرار دهید . سپس فایل database-install.php را در مرورگر اجرا کنید تا دیتابیس بروز شود . حال برای شروع می توانید یک فایل index.php بسازید و در ابتدای آن کد زیر را قرار دهید :

include_once( '../Files/config.php' );
include_once( '../Files/class-secure-file-download.php' );

اکنون فایل های اصلی فراخوانی شد در مرحله دوم باید کلید دانلود فایل ساخته شود . کد زیر نمونه ای برای ساخت کلید می باشد :

$download = new Secure_File_Download( DB_USER, DB_PASSWORD, DB_NAME, DB_HOST );
// Creates a key to download this file expiring after 1 day.
$dl_key = $download->create_key( 'FILE NAME', 60*60*24 );
echo ( $dl_key ) ? $dl_key : 'An error occured while creating the download key.';

حال چند نکته در قسمتی که نوشته شده است FILE NAME باید لینک مستقیم فایل را قرار دهید و در قسمتی که نوشته 24*60*60 منظور مدت زمانی است که کلید از همان لحظه به بعد باید فعال باشد برای مثال اگر 60*60 را بنویسید به منظور 1 ساعت هست چون از طرف چپ به ترتیب به معنای ثانیه-دقیقه-ساعت هست پس 60 اول یعنی 60 ثانیه و 60 دوم به معنای 60 دقیقه یک ساعت هست پس نتیجه این شد که اگر 60*60 نوشته شود تاریخ انقضا تا 1 ساعت بعد خواهد بود ولی اگر گزینه ساعت هم اضافه کنیم مثلا 24 ساعت مانند 24*60*60 تاریخ انقضا از یک ساعت به یک روز تبدیل می شود چون هر شبانه روز 24 ساعت هست و ما یک ساعت رو حساب کردیم و ضربدر 24 ساعت کردیم . خوب در قسمتی که نوشته An error ... اگر کلید ساخته نشد خطا نمایش می دهد . تا اینجا ما کلید برای دانلود ساختیم توجه داشته باشیم این کلاس به گونه ای می باشد که بعد تکمیل دانلود کلید خودکار حذف می شود . خوب حال در ادامه می توان کد دانلود فایل را با توجه به کد ساخته شده قرار داد به کد زیر توجه کنید :

// دانلود با سرعت نا محدود و قابلیت توقف در دانلود
//$error = $download->download( $dl_key );

// دانلود با سرعت نا محدود و بدون قابلیت توقف در دانلود
//$error = $download->download( $dl_key, false );

// دانلود با سرعت محدود شده 50 کیلوبایت بر ثانیه و بدون قابلیت توقف در دانلود
//$error = $download->download( $dl_key, false, 50 );

// دانلود با سرعت محدود شده 30 کیلوبایت برثانیه و با قابلیت توقف در دانلود
//$error = $download->download( $dl_key, true, 30 );

if( is_string( $error ) ):

	// خطا های سیستم
	if( $error == 'Error: download is expired.' ) header( 'location: expired.php' );
	
	if( $error == 'Error: file does not exist.' ) header( 'location: no-file.php' );
	// ... etc ...
	
	echo $error;
endif;

خوب در این قسمت این کد بالا کد ساخته شده در دیتابیس رو بررسی می کنه و اگر صحیح بود و فایل وجود داشت و منقضی نبود دانلود را شروع می کند قابلیتی که در سیستم وجود داره که به دیتابیس وصله به شما کمک می کند که کد های ساخت کلید و دانلود را از هم جدا کنید و بدون هیچ گونه محدودیتی کدینگ مورد نظر خود را انجام دهید . حال در این کد می بینیم که 4 حالت برای دانلود وجود دارد که برای فعال سازی باید // اول خط آن را برداشت مثلا من می خواهم کاربرانم با محدودیت 150 کیلوبایت بر ثانیه و قابلیت توقف در دانلود فایل را دریافت کنند پس از کد زیر استفاده می کنم :

$error = $download->download( $dl_key, true, 150 );
// پارامتر اول باید کلید دانلود باشد
// پارامتر دوم قابلیت توقف را فعال و غیر فعال می کند
// پارامتر سوم سرعت دانلود را بر حسب کیلوبایت بر ثانیه تایین می کند

حال می توانیم نگاهی به کدینگ کلی فایل بیندازیم : (هر چند در فایل دریافتی 2 فایل جدا برای ساخت کلید و دانلود وجود دارد)

include_once( '../Files/config.php' );
include_once( '../Files/class-secure-file-download.php' );

$download = new Secure_File_Download( DB_USER, DB_PASSWORD, DB_NAME, DB_HOST );
// Creates a key to download this file expiring after 1 day.
$dl_key = $download->create_key( 'FILE NAME', 60*60*24 );
if($dl_key != false) { // دانلود با سرعت نا محدود و قابلیت توقف در دانلود //$error = $download->download( $dl_key ); // دانلود با سرعت نا محدود و بدون قابلیت توقف در دانلود //$error = $download->download( $dl_key, false ); // دانلود با سرعت محدود شده 50 کیلوبایت بر ثانیه و بدون قابلیت توقف در دانلود //$error = $download->download( $dl_key, false, 50 ); // دانلود با سرعت محدود شده 30 کیلوبایت برثانیه و با قابلیت توقف در دانلود $error = $download->download( $dl_key, true, 150 ); if( is_string( $error ) ): // خطا های سیستم if( $error == 'Error: download is expired.' ) header( 'location: expired.php' ); if( $error == 'Error: file does not exist.' ) header( 'location: no-file.php' ); // ... etc ... echo $error; endif; }

من سید امیرحسین طــاووســی هستم طــراح و برنامه نویس وب . فـعالیتم را در زمینه کــامپـیوتـر قبل از سـال اول دبـسـتـان شـروع کــردم و تا دوره راهنمایی اطلاعات کاملی از این تکنولوژی بدست آوردم . از ان دوره تا کنون در زمینه های مختلف فعالیت می کنم که مهـم ترین آن برنامه نویسی وب است یکی از عواملی که باعث شد تا به این سمت بیام کـدباز بودن زبان های وب هستش و روز به روز به دانستنیهایم در این زمینه می افزایم. شاد و سرزنده باشید .

رمز فایل ها در بیان باکس : tavousi.name

در صورت مشکل در دانلود فایل ها و یا حذف شدن آن ها ما را مطلع نمایید .

نظرات  (۲)

درود !

جالب و خیلی کاربردی بود !

تشکر (:
سلام یه سوال
من قدم به قدم حرف های شما رو انجام دادم
دیتابیس مشکلی نداره کلید کامل ساخته میشه
لینک دانلود هم قرار دادم توی قسمت مورد نظر
وقت نمیدونم چرا وقتی رو فایل download.php کلیک میکنم هر بار یه کلید می سازه ولی نمیره واسه دانلود و مستقیما میره به فایل no-file.php
مشکل از کجاست؟
پاسخ:
مشکلات زیادی ممکنه وجود داشته باشه همینجا زحمت بکشید مجموعه اسکریپتی که نوشتید به صورت زیپ شده قرار دهید تا من بررسی کنم !

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی