<?php
namespace Spatie\MediaLibrary\Downloaders;
use Spatie\MediaLibrary\MediaCollections\Exceptions\UnreachableUrl;
class DefaultDownloader implements Downloader
{
public function getTempFile(string $url): string
{
$context = stream_context_create([
"http" => [
"header" => "User-Agent: Spatie MediaLibrary",
],
]);
if (! $stream = @fopen($url, 'r', false, $context)) {
throw UnreachableUrl::create($url);
}
$temporaryFile = tempnam(sys_get_temp_dir(), 'media-library');
file_put_contents($temporaryFile, $stream);
fclose($stream);
return $temporaryFile;
}
}