athlon1600/php-curl-file-downloader
Download remote files in PHP using cURL with a simple, lightweight wrapper. Supports saving to disk, streaming, progress callbacks, custom headers/options, redirects and timeouts—handy for CLIs or apps that need reliable file downloads.
There's too many code snippets on the Internet on how to do this, but not enough libraries.
This will allow you to download files of any size using cURL without ever running out of memory. That's it.
<?php
use Curl\Client;
use CurlDownloader\CurlDownloader;
$browser = new Client();
$downloader = new CurlDownloader($browser);
$response = $downloader->download("https://download.ccleaner.com/cctrialsetup.exe", function ($filename) {
return './2020-06-07-' . $filename;
});
if ($response->status == 200) {
// 28,851,928 bytes downloaded in 20.041231 seconds
echo number_format($response->info->size_download) . ' bytes downloaded in ' . $response->info->total_time . ' seconds';
}
It will automatically guess filename of the resource being downloaded (just like web-browsers do it!) with an option to override it if needed.
composer require athlon1600/php-curl-file-downloader "^1.0"
How can I help you explore Laravel packages today?