رایگان کد PHP اسکریپت Transfer2Server انتقال فایل بین سرورها با لینک مستقیم بدون دانلود

به انجمن تخصصی وبمستران خوش آمدید!

با عضویت در انجمن، به محتوای اختصاصی ویژه وبمستران دسترسی داشته باشید و از امکانات بی نظیر اعضای انجمن بهره مند شوید.

همین الان عضو شوید!

رایگان کد PHP اسکریپت Transfer2Server انتقال فایل بین سرورها با لینک مستقیم بدون دانلود

نوشته‌ها
432
امتیاز پسند
2
امتیازها
1,637
جایزه‌ها
6
سن
30
محل سکونت
اصفهان
اعتبار
19,559‌ سکه
  • موضوع نویسنده
  • #1
این اسکریپت یک فایل PHP تک‌فایله است که امکانات زیادی را برای مدیریت دانلود فایل از لینک‌های مستقیم به هاست شما فراهم می‌کند، با حفاظت رمزعبور، سیستم جلوگیری از ورود غیرمجاز، و کنترل دفعات تلاش ناموفق.
این اسکریپت یک ابزار تک‌فایله‌ی PHP است که به شما اجازه می‌دهد فایل‌ها را از طریق لینک مستقیم (Direct Link) به سرور خود منتقل کنید، بدون نیاز به دانلود آن‌ها روی کامپیوتر و سپس آپلود مجدد. فرآیند کار به این صورت است که ابتدا کاربر باید از طریق فرم ورود رمز عبور صحیحی که در خود کد تعریف شده را وارد کند. سیستم تلاش‌های ناموفق ورود را در یک فایل JSON ذخیره کرده و پس از تعداد مشخصی اشتباه، کاربر را به‌مدت تعیین‌شده (پیش‌فرض ۲۴ ساعت) بلاک می‌کند. برای حفظ وضعیت ورود، کوکی‌ای به مدت یک ساعت ذخیره می‌شود و کاربر در این مدت می‌تواند بدون ورود دوباره از امکانات اسکریپت استفاده کند. این سیستم همچنین امکان خروج (Logout) دارد تا کاربر بتواند جلسه‌ی ورود خود را پایان دهد.

transfer.png


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

امکانات اصلی:


  1. حفاظت با رمزعبور
    رمزعبور در ابتدای فایل PHP تعریف می‌شود و می‌توانید آن را تغییر دهید.
  2. سیستم شمارش دفعات تلاش و بلاک ۲۴ ساعته
    درون فایل JSON ذخیره می‌شود و زمان بلاکی و تعداد دفعات را از طریق متغیرهای $max_attempts و $block_time تغییر می‌دهید.
  3. انتقال فایل از لینک مستقیم به سرور
    کاربر لینک را وارد می‌کند و فایل بر روی هاست ذخیره می‌شود.
  4. گزینه تغییر نام فایل
    به‌صورت مخفی تا زمانی که کاربر گزینه را تیک بزند، نمایش داده نمی‌شود.
  5. نمایش لینک نهایی و دکمه کپی
    بعد از دانلود، لینک کامل فایل روی هاست نمایش داده می‌شود با امکان کپی سریع.
  6. نمایش پیام‌های خطا
    اگر دانلود با مشکل مواجه شود مثل عدم دسترسی یا لینک نامعتبر، پیام فارسی نمایش داده می‌شود.
  7. نوار پیشرفت شبیه‌سازی‌شده
    برای نمایش حس دانلود در حال انجام.

transfer2.png



قسمت‌های قابل تغییر:


  • رمزعبور: در متغیر $password
  • تعداد دفعات مجاز ورود اشتباه: در $max_attempts
  • مدت بلاکی: در $block_time بر حسب ثانیه (۲۴ ساعت = 86400 ثانیه)
  • مسیر ذخیره فایل JSON: در $json_file
  • مسیر ذخیره فایل‌ها: در بخش $save_path
transfer1.png


روش استفاده:


  1. فایل php را در مسیر دلخواه روی هاست آپلود کنید.
  2. آدرس آن را در مرورگر باز کنید، ابتدا به صفحه ورود می‌روید.
  3. بعد از ورود صحیح، فرم انتقال فایل را می‌بینید.
  4. لینک مستقیم فایل را وارد کنید، اگر خواستید تغییر نام دهید، گزینه تغییر نام را فعال کنید.
  5. دکمه دانلود را بزنید و بعد از انجام، لینک نهایی روی هاست شما نمایش داده می‌شود.
PHP:
<?php
// تنظیمات اصلی — احمدرضا کریمی
header('Content-Type: text/html; charset=utf-8');
date_default_timezone_set('Asia/Tehran');

// --- تنظیمات قابل تغییر ---
$password = "123456"; // ← اینجا رمز مورد نظر خودتان را بگذارید
$max_attempts = 3; // ← تغییر دهید
$block_time = 86400; // ← تغییر دهید
$login_duration = 3600; // مدت زمان فعال بودن کوکی لاگین (بر حسب ثانیه)

$json_file = __DIR__ . "/login_attempts.json";
if(!file_exists($json_file)) {
    file_put_contents($json_file, json_encode([]));
}

$attempts_data = json_decode(file_get_contents($json_file), true);
$ip = $_SERVER['REMOTE_ADDR'];

// خروج با حذف کوکی
if (isset($_GET['logout'])) {
    setcookie("logged_in", "", time() - 3600, "/");
    header("Location: ".$_SERVER['PHP_SELF']);
    exit;
}

// بررسی بلاک بودن IP
if(isset($attempts_data[$ip]['blocked_until']) && time() < $attempts_data[$ip]['blocked_until']) {
    $remaining = $attempts_data[$ip]['blocked_until'] - time();
    die("<h3 style='color:red;font-family:Vazirmatn;'>شما به مدت " . ceil($remaining/60) . " دقیقه دیگر بلاک هستید.</h3>");
}

// اگر کوکی لاگین فعال نیست، صفحه ورود
if (!isset($_COOKIE['logged_in']) || $_COOKIE['logged_in'] !== "1") {

    // پردازش ورود
    if(isset($_POST['login'])) {
        if($_POST['pass'] != $password) {
            if(!isset($attempts_data[$ip])) $attempts_data[$ip] = ["count"=>0];
            $attempts_data[$ip]['count'] = ($attempts_data[$ip]['count'] ?? 0) + 1;
            if($attempts_data[$ip]['count'] >= $max_attempts) {
                $attempts_data[$ip]['blocked_until'] = time() + $block_time;
            }
            file_put_contents($json_file, json_encode($attempts_data));
            die("<h3 style='color:red;font-family:Vazirmatn;'>رمزعبور اشتباه است</h3>");
        } else {
            unset($attempts_data[$ip]);
            file_put_contents($json_file, json_encode($attempts_data));
            setcookie("logged_in", "1", time() + $login_duration, "/");
            header("Location: ".$_SERVER['PHP_SELF']);
            exit;
        }
    }

    // فرم ورود
    ?>
    <!DOCTYPE html>
<html lang="fa">
<head>
<meta charset="UTF-8">
<title>ورود به سیستم دانلود سرور</title>
<link href="https://cdn.jsdelivr.net/npm/vazirmatn@33.0.1/stylesheet.min.css" rel="stylesheet">
<style>
    body {
        font-family: Vazirmatn,sans-serif;
        background: linear-gradient(135deg, #6a11cb 0%, #2575fc 100%);
        display: flex;
        justify-content: center;
        align-items: center;
        height: 100vh;
        margin: 0;
        direction: rtl;
    }
    p,button {font-family: Vazirmatn,sans-serif;}
    .login-box {
        background: rgba(255,255,255,0.15);
        backdrop-filter: blur(15px);
        border-radius: 15px;
        padding: 40px 30px;
        width: 350px;
        box-shadow: 0 0 20px rgba(0,0,0,0.3);
        animation: fadeIn 1s ease;
    }
    .login-box h2 {
        margin-bottom: 20px;
        color: #fff;
        font-weight: 700;
        font-size: 24px;
    }
    input[type=password] {
        width: 96%;
        padding: 12px 15px;
        padding-left: 0px;
        border: none;
        outline: none;
        border-radius: 8px;
        margin-top: 10px;
        font-family: Vazirmatn,sans-serif;
        font-size: 16px;
        background: rgba(255, 255, 255, 0.8);
        transition: box-shadow .3s;
    }
    input[type=password]:focus {
        box-shadow: 0 0 8px rgba(255,255,255,0.7);
    }
    button {
        width: 100%;
        padding: 12px;
        margin-top: 20px;
        border: none;
        border-radius: 8px;
        font-size: 18px;
        font-weight: 600;
        background: linear-gradient(135deg, #ff5f6d, #ffc371);
        color: white;
        cursor: pointer;
        transition: transform 0.2s, box-shadow 0.2s;
    }
    button:hover {
        transform: translateY(-2px);
        box-shadow: 0 5px 15px rgba(0,0,0,0.3);
    }
    @keyframes fadeIn {
        from {opacity: 0; transform: scale(0.95);}
        to {opacity: 1; transform: scale(1);}
    }
</style>
</head>
<body>
<div class="login-box">
    <h2>🔑 ورود به سیستم</h2>
    <form method="post">
        <input type="password" name="pass" placeholder="رمزعبور" required>
        <button type="submit" name="login">ورود</button>
    </form>
</div>
</body>
</html>
    <?php
    exit;
}

// فرم و پردازش آپلود اگر ورود معتبر است
if(isset($_POST['upload'])) {
    $url = trim($_POST['file_url']);
    if(empty($url) || !filter_var($url, FILTER_VALIDATE_URL)) {
        $error = "لینک نامعتبر است";
    } else {
        $filename = basename(parse_url($url, PHP_URL_PATH));
        if(isset($_POST['custom_name']) && !empty($_POST['new_name'])) {
            $filename = $_POST['new_name'];
        }
        $save_path = __DIR__ . "/" . $filename;

        // دانلود فایل
        $file_data = @file_get_contents($url);
        if($file_data === false) {
            $error = "خطا در دانلود فایل";
        } else {
            file_put_contents($save_path, $file_data);

            // ساخت لینک کامل قابل کلیک روی سرور
            $domain = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http");
            $domain .= "://".$_SERVER['HTTP_HOST']."/".rawurlencode($filename);
            $final_link = $domain;
            $success = "✅ دانلود با موفقیت انجام شد";
        }
    }
}

?>
<!DOCTYPE html>
<html lang="fa">
<head>
<meta charset="UTF-8">
<title>انتقال فایل از لینک مستقیم</title>
<link href="https://cdn.jsdelivr.net/npm/vazirmatn@33.0.1/stylesheet.min.css" rel="stylesheet">
<style>
    body {
        font-family: Vazirmatn,sans-serif;
        background: linear-gradient(135deg, #6bede1 0%, #5d96c3 100%);
        min-height: 100vh;
        display: flex;
        justify-content: center;
        align-items: center;
        margin: 0;
        direction: rtl;
    }
    button,input,p {font-family: Vazirmatn,sans-serif;}
    .upload-box {
        background: rgba(255,255,255,0.2);
        backdrop-filter: blur(20px);
        border-radius: 15px;
        padding: 40px 30px;
        width: 500px;
        box-shadow: 0 0 25px rgba(0,0,0,0.2);
        animation: fadeUp 1s ease;
    }
    .upload-box h2 {
        color: #fff;
        text-align: center;
        font-weight: 700;
        margin-bottom: 25px;
    }
    input[type=text] {
        width: 94%;
        padding: 12px 15px;
        border: none;
        outline: none;
        border-radius: 8px;
        margin-bottom: 20px;
        font-size: 16px;
        font-family: Vazirmatn,sans-serif;
        background: rgba(255,255,255,0.85);
    }
    input[type=text]:focus {
        box-shadow: 0 0 8px rgba(255,255,255,0.7);
    }
    label {
        display: inline-block;
        margin-bottom: 10px;
        color: #fff;
        font-weight: 500;
    }
    button {
        width: 100%;
        padding: 12px;
        border: none;
        border-radius: 8px;
        font-size: 18px;
        font-weight: 600;
        background: linear-gradient(135deg, #36d1dc, #5b86e5);
        color: white;
        cursor: pointer;
        transition: transform 0.2s, box-shadow 0.2s;
    }
    button:hover {
        transform: translateY(-2px);
        box-shadow: 0 5px 20px rgba(0,0,0,0.25);
    }
    #name_field {display: none;}
    .copy-btn {
        background: linear-gradient(135deg, #f7971e, #ffd200);
        padding: 6px 12px;
        color: white;
        border: none;
        border-radius: 8px;
        cursor: pointer;
        margin-top: 15px;
    }
    .copy-btn:hover {
        transform: translateY(-2px);
        box-shadow: 0 5px 15px rgba(0,0,0,0.2);
    }
    @keyframes fadeUp {
        from {opacity: 0; transform: translateY(20px);}
        to {opacity: 1; transform: translateY(0);}
    }
</style>
<script>
function toggleCustomName() {
    const chk = document.getElementById('custom_name');
    document.getElementById('name_field').style.display = chk.checked ? 'block' : 'none';
}
function copyLink() {
    const link = document.getElementById('final_link').innerText;
    navigator.clipboard.writeText(link).then(() => {
        alert("لینک کپی شد");
    });
}
</script>
</head>
<body>
<div class="upload-box">
    <p style="text-align:right;"><a href="?logout" style="color:white;background: #0000004f;padding: 3px 10px;text-decoration: unset;border-radius: 5px;">🚪 خروج</a></p>
    <h2>📂 انتقال فایل به هاست</h2>
    <form method="post">
        <input type="text" name="file_url" placeholder="لینک مستقیم فایل" required>
        <label>
            <input type="checkbox" name="custom_name" id="custom_name" onclick="toggleCustomName()">
            تغییر نام فایل
        </label>
        <div id="name_field">
            <input type="text" name="new_name" placeholder="نام جدید فایل">
        </div>
        <button type="submit" name="upload">دانلود و ذخیره</button>
    </form>
    <?php if(isset($success)): ?>
    <p style="color:#002521;text-align:center;"><?php echo $success; ?></p>
    <p style="color:white;text-align:center;">لینک فایل روی سرور:</p>
    <p id="final_link" style="color:white;text-align:center;">
        <a href="<?php echo $final_link; ?>" target="_blank" style="color:yellow;"><?php echo $final_link; ?></a>
    </p>
    <center><button class="copy-btn" onclick="copyLink()">کپی</button></center>
    <?php elseif(isset($error)): ?>
    <p style="color:red;text-align:center;"><?php echo $error; ?></p>
    <?php endif; ?>

</div>
</body>
</html>

این کد اختصاصی انجمن خودمونه پس اگه قصد کپی کردنشو دارید بی زحمت منبع فراموش نشه!
 
آخرین ویرایش:
بازگشت
بالا پایین