من رفتم سربازی اگر محتوای منو دوست داشتید و بدردتون خورد از من حمایت مالی کنید

اسکریپت دانلود فایل حجیم با PHP

اسکریپت دانلود فایل حجیم با PHP
اسکریپت دانلود فایل حجیم با PHP

اسکریپت دانلود فایل حجیم با PHP

در این نوشته یک اسکریپت PHP ارائه می‌کنیم تا بتوانید با کمک آن یک فایل را بدون timeout فایلی با حجم بالا را دانلود کنید.

 

روش دانلود فایل حجیم با کمک اسکریپت PHP

برای دانلود فایل‌های حجیم در زبان برنامه نویسی PHP و بدون timeout از اسکریپت زیر استفاده کنید:

<?php
// Disable time limit
set_time_limit(0);

// URL of the file to download
$fileUrl = 'https://test.com/test.zip';

$fileName = basename($fileUrl);

// Set the path to the current directory
$savePath = __DIR__ . '/' . $fileName;

// Function to format bytes to a human-readable format
function formatBytes($bytes, $precision = 2)
{
    $units = array('B', 'KB', 'MB', 'GB', 'TB');
    $bytes = max($bytes, 0);
    $pow = floor(($bytes ? log($bytes) : 0) / log(1024));
    $pow = min($pow, count($units) - 1);
    $bytes /= (1 << (10 * $pow));
    return round($bytes, $precision) . ' ' . $units[$pow];
}

// Progress callback function
function progressCallback($downloadSize, $downloaded, $uploadSize, $uploaded)
{
    if ($downloadSize > 0) {
        $progress = round(($downloaded / $downloadSize) * 100, 2);
        echo "Downloaded " . formatBytes($downloaded) . " of " . formatBytes($downloadSize) . " ({$progress}%)\r";
        flush();
    }
}

// Open file for writing
$fp = fopen($savePath, 'w+');

// Initialize cURL
$ch = curl_init($fileUrl);
curl_setopt($ch, CURLOPT_TIMEOUT, 0);  // Remove the timeout
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_PROGRESSFUNCTION, 'progressCallback');
curl_setopt($ch, CURLOPT_NOPROGRESS, false);

// Execute the request
$data = curl_exec($ch);

// Check for errors
if (curl_errno($ch)) {
    echo 'Error: ' . curl_error($ch);
} else {
    echo "\nFile saved successfully to: " . $savePath;
}

// Close cURL handle
curl_close($ch);

// Close file handle
fclose($fp);

 

اگر نیاز به آموزش‌های بیش‌تری در ارتباط با PHP دارید در بخش نظرات این نوشته برای ما بنویسید.

برای امتیاز به این نوشته کلیک کنید!
[کل: 1 میانگین: 5]