ervinsvilumsons / laravel-upload
Laravel Upload Manager is a package that provides an easy way to handle file uploads in Laravel applications.
v1.0.1
2026-09-05 17:07 UTC
Requires
- php: ^8.3
Requires (Dev)
- laravel/pint: ^1.30
- orchestra/testbench: ^11.2
- pestphp/pest: ^5
- phpstan/phpstan: ^2.2
- rector/rector: ^2.6
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-09-07 16:29:55 UTC
README
A stream-aware file upload package for Laravel with hashing, encryption, deduplication, and configurable upload profiles.
🧩 Features
- Stream large files without loading them entirely into memory
- SHA-256 content hashing
- Optional streaming encryption
- Content-based filenames and deduplication
- Configurable upload profiles
- Dynamic paths such as
uploads/{year}/{month}/{day}
📦 Installation
composer require ervinsvilumsons/laravel-upload
Publish the configuration:
php artisan vendor:publish --tag=upload-manager-config
🚀 Quick Start
use UploadManager; $result = UploadManager::profile('documents')->upload($request->file('document'));
Profiles
Configure different upload strategies in config/upload-manager.php:
return [ 'default' => [ 'disk' => 'local', 'path' => 'uploads/{year}/{month}/{day}', 'filename' => 'uuid', 'hash' => false, 'encrypt' => false, ], 'profiles' => [ 'documents' => [ 'path' => 'documents', 'filename' => 'sha256', 'hash' => true, ], 'secure' => [ 'disk' => 's3', 'path' => 'secure', 'filename' => 'sha256', 'encrypt' => true, ], ], ];
Upload Result
$result->path; $result->url; $result->size; $result->contentHash; $result->name; $result->originalName; $result->extension; $result->mimeType;
⚖️ License
Laravel Upload Manager is released under the MIT License.