amjadiqbal/filament-url-image-uploader
A powerful Filament PHP form component that enables seamless image uploads from URLs. Features include image validation, preview functionality, and easy integration with Laravel storage. Perfect for remote image imports, content management, and e-commerce applications built with FilamentPHP.
You can install the package via composer:
composer require amjadiqbal/filament-url-image-uploader
use AmjadIqbal\FilamentUrlImageUploader\Components\UrlImageUploader;
UrlImageUploader::make('image')->directory('images');
The field renders two tabs — upload a file directly, or paste an image URL and fetch it server-side.
Either way, the value saved to your model attribute is always a plain storage path string (e.g.
"images/example.jpg"), never an array — no accessor/mutator gymnastics required on your model:
// database column: image (string, nullable)
class Post extends Model
{
protected $fillable = ['image'];
}
To render the stored image elsewhere in your app, resolve it through the disk you configured:
Storage::disk('public')->url($post->image);
You can customize the storage directory:
UrlImageUploader::make('image')->directory('custom/path/here');
By default, files are stored on the public disk. You can target any configured disk:
UrlImageUploader::make('image')->disk('s3');
UrlImageUploader::make('image')->preserveFilenames();
The "URL Upload" tab downloads the remote image server-side before validating its content type. By default, downloads larger than 10 MB are rejected; adjust it with:
UrlImageUploader::make('image')->maxUrlFetchSize(5 * 1024 * 1024); // 5 MB
UrlImageUploader manages a single image per field. It does not currently support Filament's
multiple() mode — for a gallery of several images, use one UrlImageUploader per image, or a
Repeater of them.
composer test # PHPUnit, via Orchestra Testbench
composer analyse # Larastan/PHPStan (level 5)
composer format # Laravel Pint
Need expert help? Hire me on Upwork for:
Please see CHANGELOG.md for more information on what has changed recently.
If you discover a security vulnerability, please report it in our Security Room on Discord. All security vulnerabilities will be promptly addressed.
We welcome contributions!
Made with contrib.rocks.
Hire me on Upwork for:
For priority support and enterprise solutions, please reach out via Upwork for direct assistance.
How can I help you explore Laravel packages today?