بسیاری از سرویس نگهداری و اشتراک گذاری فایل برای کاربرانی که به صورت رایگان قصد دانلود فایلها را دارند محدودیتهایی همانند محدود کردن سرعت دانلود فایل مورد نظر تعیین میکنند و از این طریق کاربران و بازدید کنندگان را به خرید حساب کاربری پولی و یا همان ویژه در سایت خود تشویق میکنند. اما اگر شما نیز به هر دلیلی نیاز به محدود سازی سرعت دانلود از سرور سایت خود توسط کاربران را دارید در این آموزش تورتک با چگونگی انجام این کار آشنا میشویم.
برای محدود سازی سرعت دریافت اطلاعات از سرورهاست سایت شما توسط PHP به موارد مختلفی نیاز داریم که با تمامی این پیش نیازها در لیست زیر آشنا میشویم. توجه داشته باشید نبود و یا رعایت نکردن هر یک از این موارد ممکن است باعث نمایش خطا به کاربران در هنگام دانلود فایل و یا باعث به وجود آمدن راههایی شود که کاربران با استفاده از آنها توانایی دانلود فایل مورد نظر با حداکثر سرعت ممکنه داشته باشند.
بسیاری از سرویس نگهداری و اشتراک گذاری فایل برای کاربرانی که به صورت رایگان قصد دانلود فایلها را دارند محدودیتهایی همانند محدود کردن سرعت دانلود فایل مورد نظر تعیین میکنند و از این طریق کاربران و بازدید کنندگان را به خرید حساب کاربری پولی و یا همان ویژه در سایت خود تشویق میکنند. اما اگر شما نیز به هر دلیلی نیاز به محدود سازی سرعت دانلود از سرور سایت خود توسط کاربران را دارید در این آموزش تورتک با چگونگی انجام این کار آشنا میشویم.
برای محدود سازی سرعت دریافت اطلاعات از سرورهاست سایت شما توسط PHP به موارد مختلفی نیاز داریم که با تمامی این پیش نیازها در لیست زیر آشنا میشویم. توجه داشته باشید نبود و یا رعایت نکردن هر یک از این موارد ممکن است باعث نمایش خطا به کاربران در هنگام دانلود فایل و یا باعث به وجود آمدن راههایی شود که کاربران با استفاده از آنها توانایی دانلود فایل مورد نظر با حداکثر سرعت ممکنه داشته باشند.
در کدهای معرفی شده در این آموزش سعی میکنیم تمامی موارد ذکر شده در لیست بالا را رعایت کنیم تا نتیجه نهایی در سایت شما با بهترین کیفیت ممکن عمل کند. البته پیشنهاد میکنیم برای استفاده از این کدها و محدود سازی سرعت دانلود فایل درهاست سایت خود با توجه به ساختار سایت یا وبلاگ خود کدهای PHP زیر را ویرایش و شخصی سازی کنید. برای شروع کار کافی است یک فایل با پسوند PHP درهاست خود ایجاد کنید و سپس از کدهای زیر برای محدود سازی سرعت دانلود فایل مورد نظر استفاده کنید. توجه داشته باشید در مثال زیر ما از فایل مشخصی استفاده کردهایم اما اگر شما میخواهید فایل ساخته شده توانایی کار بر روی هر فایل دیگری را نیز درهاست شما داشته باشد میتوانید از متغیر مربوط به دریافت و استفاده از اطلاعات ارسال شده توسط فرم وب همانند $_REQUEST، $_POST استفاده کنید.
$local_file = 'main-file.zip';
$download_file = 'download-name.zip';
$download_rate = 20;
if(file_exists($local_file) && is_file($local_file)) {
header('Cache-control: private');
header('Content-Type: application/octet-stream');
header('Content-Length: '.filesize($local_file));
header('Content-Disposition: filename='.$download_file);
flush();
$file = fopen($local_file, "r");
while (!feof($file)) {
print fread($file, round($download_rate * 1024));
flush();
sleep(1);
}
fclose($file);
}
else {
die('Error: The file '.$local_file.' does not exist!');
}
به همین سادگی و تنها با استفاده از همین چند خط کد سرور سایت شما به صورت تدریجی و مقدار اطلاعاتی که شما تعیین کردهاید و یا همان سرعت تبادل اطلاعات که در کد بالا 20 کیلوبایت تعیین شده است در هر ثانیه فایل مورد نظر را در اختیار کاربران قرار میدهند. توجه داشته باشید به جای main-file.zip باید نام و آدرس فایل مورد نظر در سرور سایت خود را وارد کنید، به جای download_file نام فایل مجازی که به کاربر ارسال میشود و به جای download_rate حداکثر سرعت در اختیار گذاشتن اطلاعات در هر ثانیه به واحد کیلوبایت تعیین کنید.