اسکریپت دانلود فایل حجیم با 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]
ارسال پاسخ