اسکریپت آپلود فایل با لینک دانلود در حال انقضا و سئو دوستانه در PHP


در دنیای توسعه وب، یکی از نیازهای رایج، ایجاد سیستم‌های مدیریت فایل است که علاوه بر امنیت، قابلیت کنترل لینک‌های دانلود را داشته باشند. در این مقاله، قصد داریم به طور جامع و کامل درباره ساخت یک اسکریپت PHP صحبت کنیم که بتواند فایل‌ها را آپلود کند، لینک‌های دانلود آن‌ها را با محدودیت زمانی مشخص نماید، و این لینک‌ها را به گونه‌ای طراحی کنیم که برای موتورهای جستجو و کاربران، سئو دوستانه باشد. این موضوع، به‌خصوص برای سایت‌هایی که فایل‌های دانلودی ارائه می‌دهند، اهمیت زیادی دارد.

اهمیت کنترل لینک‌های دانلود و محدودیت زمانی




در بسیاری از موارد، صاحبان وب‌سایت‌ها نیاز دارند تا لینک‌های دانلود پس از مدت زمان معینی منقضی شوند. این عمل می‌تواند از کپی‌برداری غیرمجاز، سرقت حقوقی، و نیز حفظ منابع سرور جلوگیری کند. علاوه بر این، لینک‌های کوتاه و سئو دوستانه، باعث می‌شود کاربران راحت‌تر بتوانند لینک‌ها را به اشتراک بگذارند و در نتایج جستجو نیز بهتر دیده شوند.

ساختار کلی اسکریپت




یک اسکریپت کامل باید چند قسمت مهم را در بر داشته باشد:
  1. آپلود فایل: فرآیند دریافت فایل از کاربر و ذخیره آن در سرور.

  1. ذخیره اطلاعات فایل: شامل نام فایل، مسیر، تاریخ انقضا، و لینک منحصر به فرد.

  1. ایجاد لینک دانلود سئو دوستانه: لینک‌هایی که قابل فهم و قابل اشتراک‌گذاری باشند.

  1. مدیریت انقضا لینک‌ها: بررسی تاریخ انقضا و غیرفعال کردن لینک‌های منقضی شده.

  1. امنیت و حفاظت: جلوگیری از دسترسی غیرمجاز و هک‌های احتمالی.

    مراحل پیاده‌سازی




۱. طراحی فرم آپلود فایل




در ابتدا، باید یک فرم ساده در HTML طراحی کنیم که کاربر بتواند فایل خودش را بارگذاری کند. این فرم باید دارای ویژگی‌های لازم باشد، از جمله `enctype="multipart/form-data"` و متد `POST`. به عنوان مثال:
html  

<form action="upload.php" method="post" enctype="multipart/form-data">

<input type="file" name="file" required>

<input type="number" name="expire_days" placeholder="مدت انقضا بر حسب روز" required>

<button type="submit">آپلود فایل</button>

</form>


در این فرم، کاربر فایل و مدت زمان انقضا را وارد می‌کند.

۲. پردازش فایل در PHP




در فایل `upload.php`، باید فایل را دریافت، اعتبارسنجی و در سرور ذخیره کنیم. همچنین، اطلاعات مربوط به فایل و لینک، در پایگاه داده ذخیره می‌شود. برای مثال:
php  

<?php

if ($_SERVER['REQUEST_METHOD'] == 'POST') {

$file = $_FILES['file'];

$expire_days = intval($_POST['expire_days']);
// اعتبارسنجی فایل

if ($file['error'] !== UPLOAD_ERR_OK) {

die('خطا در آپلود فایل.');

}
// تعیین مسیر ذخیره فایل

$upload_dir = 'uploads/';

if (!is_dir($upload_dir)) {

mkdir($upload_dir, 0755, true);

}
// ساخت نام یکتا برای فایل

$file_name = uniqid() . '_' . basename($file['name']);

$destination = $upload_dir . $file_name;
// انتقال فایل به مسیر نهایی

if (move_uploaded_file($file['tmp_name'], $destination)) {

// محاسبه تاریخ انقضا

$expire_timestamp = time() + ($expire_days * 86400);
// ساخت لینک سئو دو... ← ادامه مطلب در magicfile.ir