ایجاد لینک دانلود مدتدار با PHP
ایجاد لینکهای دانلود مدتدار یکی از تکنیکهای مفید در برنامهنویسی وب است. این قابلیت به شما اجازه میدهد تا فایلها را برای مدت معین قابل دسترسی کنید و پس از آن، لینکها غیرفعال شوند. در ادامه، مراحل ایجاد یک لینک دانلود مدتدار با PHP را توضیح میدهیم.
مراحل ایجاد لینک دانلود:
۱. ایجاد فایل PHP: ابتدا یک فایل PHP جدید بسازید. این فایل مسئول بررسی اعتبار لینک دانلود و ارائه فایل به کاربر خواهد بود.
۲. تنظیمات پایگاه داده: برای ذخیرهسازی اطلاعات مربوط به لینکها و زمان انقضا، میتوانید از یک پایگاه داده مانند MySQL استفاده کنید. یک جدول ساده با ستونهای `id`, `file_path`, `expiration_time` ایجاد کنید.
۳. ایجاد لینک دانلود: در هنگام تولید لینک دانلود، زمان انقضا را تعیین کنید. به عنوان مثال، میتوانید لینک را برای ۲۴ ساعت معتبر کنید. زمان انقضا را به صورت timestamp ذخیره کنید.
۴. بررسی اعتبار لینک: در فایل PHP خود، هنگام درخواست دانلود، بررسی کنید که آیا لینک معتبر است یا خیر. اگر زمان فعلی کمتر از زمان انقضا باشد، فایل را برای کاربر ارائه کنید. در غیر این صورت، پیام خطا نمایش دهید.
۵. ارسال فایل به کاربر: اگر لینک معتبر است، با استفاده از تابع `readfile()` یا `fopen()` فایل را به کاربر ارسال کنید. همچنین، میتوانید هدرهای مناسب را برای نوع فایل و اندازه آن تنظیم کنید.
نمونه کد PHP:
```php
<?php
// اتصال به پایگاه داده
$conn = new mysqli($servername, $username, $password, $dbname);
// بررسی اعتبار لینک
$id = $_GET['id'];
$query = "SELECT file_path, expiration_time FROM downloads WHERE id = ?";
$stmt = $conn->prepare($query);
$stmt->bind_param("i", $id);
$stmt->execute();
$stmt->bind_result($file_path, $expiration_time);
$stmt->fetch();
if (time() < $expiration_time) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="' . basename($file_path) . '"');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file_path));
readfile($file_path);
exit;
} else {
echo "لینک منقضی شده است.";
}
?>
```
با این روش، میتوانید لینکهای دانلودی ایجاد کنید که تنها برای مدت زمان مشخصی فعال باشند. این کار به مدیریت بهتر فایلها و افزایش امنیت کمک میکند.