microweber-packages / microweber-file-uploader
Standalone Laravel file upload service with MIME validation, size limits, security checks, chunked uploads, and image processing
Package info
github.com/microweber-packages/microweber-file-uploader
pkg:composer/microweber-packages/microweber-file-uploader
v1.0.0
2026-11-03 11:40 UTC
Requires
- php: ^8.2
- enshrined/svg-sanitize: ^0.22|^1.0
- illuminate/cache: ^10.0|^11.0|^12.0|^13.0
- illuminate/filesystem: ^10.0|^11.0|^12.0|^13.0
- illuminate/http: ^10.0|^11.0|^12.0|^13.0
- illuminate/support: ^10.0|^11.0|^12.0|^13.0
- microweber-packages/microweber-package: *
- spatie/laravel-package-tools: ^1.16
Requires (Dev)
- orchestra/testbench: ^8.0|^9.0|^10.0
- phpunit/phpunit: ^10.0|^11.0
Suggests
None
Provides
None
Conflicts
None
Replaces
- microweber-packages/file-uploader: *
This package is auto-updated.
Last update: 2026-11-03 17:06:41 UTC
README
A standalone Laravel package for secure file uploads with comprehensive validation.
Features
- MIME type validation – Validates actual file content, not just extensions
- File size limits – Configurable per-category size limits
- Security checks – Blocks dangerous file types (PHP, EXE, etc.)
- Extension-MIME mismatch detection – Catches disguised files
- Chunked upload support – Compatible with Plupload and similar JS uploaders
- Image processing – EXIF stripping, auto-rotation, SVG sanitization
- Auto-resize – Automatic image resizing for large uploads
- Configurable – Fully configurable via
config/file-uploader.php
Installation
composer require microweber-packages/microweber-file-uploader
The package auto-discovers its service provider and facade.
Usage
Via the Container
$uploader = FileUploader::; // Upload a file from a request $result = $uploader->upload($request, [ 'targetDir' => storage_path('app/public/uploads'), 'allowedFileTypes' => ['jpg', 'png', 'pdf'], 'autoResize' => true, ]); if ($result['success']) { echo "Uploaded: " . $result['name']; } else { echo "Error: " . $result['error_message']; }
Via the Facade
use MicroweberPackages\FileUploader\Facades\FileUploader; $result = FileUploader::upload($request);
Validation Only
$validator = FileUploader::->validator(); // Check MIME type $result = $validator->validateMimeType('/path/to/file.jpg', ['images']); // Check file size $result = $validator->validateSizeByCategory(filesize($path), 'images'); // Check dangerous extension $isDangerous = $validator->isDangerousExtension('file.php'); // true // Get Laravel validation rules $rules = $validator->getValidationRules(['images'], '10M');
Configuration
Publish the config file:
php artisan vendor:publish --tag=file-uploader-config
Testing
composer test
License
MIT