تصویر محمدعلی اکبری

یکی از متداول ترین نیازهای یک توسعه دهنده وب داشتن امکان دانلود مستقیم فایل‌های برنامه بر روی سرور است. به این ترتیب از دوباره کاری جلوگیری می‌شود. یعنی دیگر نیاز نیست یکبار فایلها را بر روی رایانه خود دانلود کرده و سپس آن را روی سرور ftp کنید.

اسکریپت بسیار ساده زیر از طریق یک فرم ساده، آدرس فایل مورد نظر شما را دریافت کرده و آن را بر روی مسیر files ذخیره می‌کند. توجه داشته باشید مسیر files باید موجود و دارای دسترسی لازم برای write باشد.

 

<?php
if (isset($_POST['sub']))
{
    if (filter_var($url = $_POST['url'], FILTER_VALIDATE_URL))
    {
        define('UPLOAD_DIR', dirname(__FILE__) . '/files/');
        $length = 5120;
 
        $handle = fopen($url, 'rb');
        $filename = UPLOAD_DIR . substr(strrchr($url, '/'), 1);
        $write = fopen($filename, 'w');
 
        while (!feof($handle))
        {
            $buffer = fread($handle, $length);
            fwrite($write, $buffer);
        }
 
        fclose($handle);
        fclose($write);
        echo "<h1>File download complete</h1>";
    }
    else
    {
        echo "<h2>Invalid url</h2>";
    }
}
?>
<form action="" method="POST">
    <p>
        <label for="url">Url:</label>
        <input type="text" size="50" name="url" id="url" />
    </p>
    <p>
        <input type="submit" name="sub" value="download" />
    </p>
</form>

البته اگر دسترسی به ترمینال سرور داشته باشید روش‌های ساده تری نیز وجود دارد.

برچسب ها: 

افزودن نظر جدید