PHPackages                             spykapps/filament-uppy-upload - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [File &amp; Storage](/categories/file-storage)
4. /
5. spykapps/filament-uppy-upload

ActiveLibrary[File &amp; Storage](/categories/file-storage)

spykapps/filament-uppy-upload
=============================

A powerful chunked file upload field for Filament using Uppy.js with S3, remote sources (Google Drive, OneDrive, Dropbox), webcam, screen capture, audio recording, image editing and more.

v1.0.1(2mo ago)7284↑225%1[1 issues](https://github.com/SpykApp/uppy-upload-plugin/issues)MITPHPPHP ^8.1

Since Feb 24Pushed 1mo ago1 watchersCompare

[ Source](https://github.com/SpykApp/uppy-upload-plugin)[ Packagist](https://packagist.org/packages/spykapps/filament-uppy-upload)[ Docs](https://github.com/spykapps/filament-uppy-upload)[ RSS](/packages/spykapps-filament-uppy-upload/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (2)Dependencies (2)Versions (3)Used By (0)

[![Screenshot](/art/cover-uppy.png)](/art/cover-uppy.png)

 [ ![Packagist Version](https://camo.githubusercontent.com/32000ae75baf8f702ed94af36af7a79f0018a21d1696f061552f78a4aaa776b6/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f7370796b617070732f66696c616d656e742d757070792d75706c6f61642e7376673f7374796c653d666f722d7468652d6261646765) ](https://packagist.org/packages/spykapps/filament-uppy-upload) [ ![Total Downloads](https://camo.githubusercontent.com/3c88cac799694c255f481ea9c805439c07bba8d08050e755df34eb46b312c42a/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f7370796b617070732f66696c616d656e742d757070792d75706c6f61642e7376673f7374796c653d666f722d7468652d6261646765) ](https://packagist.org/packages/spykapps/filament-uppy-upload) [![Laravel 12](https://camo.githubusercontent.com/5f32f51d9268f45b7376428e4a0bd33a004cdf420f9f92f2228a8e8a827a95e5/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c61726176656c2d31322e782d4646324432303f7374796c653d666f722d7468652d6261646765266c6f676f3d6c61726176656c)](https://laravel.com/docs/12.x) [![PHP 8.3](https://camo.githubusercontent.com/c373bf0b203812c0ee6eaa9d496d61fe5eeec0d2748786f6b95adc35c4dccdd1/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d382e332d3737374242343f7374796c653d666f722d7468652d6261646765266c6f676f3d706870)](https://php.net) [ ![License](https://camo.githubusercontent.com/608c8dfda488178950ce502d7697514db3a6a712579327ed90b9b594260f6355/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d626c75652e7376673f7374796c653d666f722d7468652d6261646765) ](https://github.com/spykapps/filament-uppy-upload/blob/main/LICENSE.md)

Filament Uppy Upload
====================

[](#filament-uppy-upload)

[![Latest Version on Packagist](https://camo.githubusercontent.com/273f15f19335e8608605975e9b0766df833f5ade6e83dbfd1f1cbfe947c75555/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f7370796b617070732f66696c616d656e742d757070792d75706c6f61642e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/spykapps/filament-uppy-upload)

A powerful chunked file upload field for **Filament 4 &amp; 5** using [Uppy.js](https://uppy.io/).

Features
--------

[](#features)

- **Chunked uploads** — large files through Cloudflare/nginx (5MB chunks)
- **S3 compatible** — any Laravel disk: local, public, S3, GCS, DO Spaces
- **Remote sources** — Google Drive, OneDrive, Dropbox via Companion
- **Built-in plugins** — Webcam, Screen Capture, Audio, Image Editor, Compressor
- **Multilingual** — 11 languages included, auto-detects locale
- **Dark mode** — follows Filament theme, not OS
- **Modal support** — proper z-index in Filament modals
- **Single &amp; multiple** — smart UI for both modes
- **Zero build step** — CDN-loaded, no npm needed

Installation
------------

[](#installation)

```
composer require spykapps/filament-uppy-upload
```

Publish and register Filament assets:

```
php artisan filament:assets
```

### Publishing (optional)

[](#publishing-optional)

**Publish config:**

```
php artisan vendor:publish --tag="uppy-upload-config"
```

This creates `config/uppy-upload.php` where you can set defaults for disk, directory, chunk size, companion URL, and more.

**Publish translations:**

```
php artisan vendor:publish --tag="uppy-upload-translations"
```

This creates `lang/vendor/uppy-upload/{locale}/uppy.php` files for all included languages. Edit them to customize any string.

**Publish views:**

```
php artisan vendor:publish --tag="uppy-upload-views"
```

This creates `resources/views/vendor/uppy-upload/` so you can customize the Blade template and CSS.

**Publish everything at once:**

```
php artisan vendor:publish --provider="SpykApp\UppyUpload\UppyUploadServiceProvider"
```

Usage
-----

[](#usage)

### Basic (single file)

[](#basic-single-file)

```
use SpykApp\UppyUpload\Forms\Components\UppyUpload;

UppyUpload::make('document')
    ->directory('documents')
```

### Multiple files

[](#multiple-files)

```
UppyUpload::make('attachments')
    ->multiple()
    ->maxFiles(10)
    ->directory('attachments')
```

### Image upload with editor

[](#image-upload-with-editor)

```
UppyUpload::make('avatar')
    ->image()
    ->imageEditor()
    ->maxFileSize(5 * 1024 * 1024)
    ->directory('avatars')
```

### S3 upload

[](#s3-upload)

```
UppyUpload::make('files')
    ->disk('s3')
    ->directory('uploads')
    ->multiple()
```

### With remote sources

[](#with-remote-sources)

```
UppyUpload::make('files')
    ->companionUrl('https://companion.yoursite.com')
    ->remoteSources(['GoogleDrive', 'OneDrive', 'Url'])
    ->directory('imports')
```

### ZIP files only

[](#zip-files-only)

```
UppyUpload::make('archive')
    ->acceptedFileTypes(['application/zip', 'application/x-zip-compressed'])
    ->maxFileSize(500 * 1024 * 1024)
    ->directory('archives')
```

### All options

[](#all-options)

```
UppyUpload::make('files')
    ->disk('s3')                          // Any Laravel disk
    ->directory('uploads')                 // Storage directory
    ->multiple()                           // Allow multiple files
    ->maxFiles(20)                         // Max number of files
    ->minFiles(1)                          // Min number of files
    ->maxFileSize(100 * 1024 * 1024)       // 100MB max per file
    ->chunkSize(5 * 1024 * 1024)           // 5MB chunks
    ->acceptedFileTypes(['image/*'])       // MIME types
    ->webcam(false)                        // Disable webcam
    ->screenCapture(false)                 // Disable screen capture
    ->audio(false)                         // Disable audio recording
    ->imageEditor(true)                    // Enable image editor
    ->autoOpenFileEditor()                 // Auto-open editor for images
    ->dragDrop(true)                       // Full-page drag & drop
    ->height(400)                          // Dashboard height in px
    ->theme('auto')                        // 'auto', 'light', or 'dark'
    ->locale('fr')                         // Override locale
    ->note('Upload your documents here')   // Custom note text
    ->companionUrl('https://...')          // Companion URL
    ->remoteSources(['GoogleDrive'])       // Remote sources
    ->uploadEndpoint('/custom/upload')     // Custom upload URL
    ->deleteEndpoint('/custom/delete')     // Custom delete URL
```

Panel Plugin (optional)
-----------------------

[](#panel-plugin-optional)

Set panel-level defaults so you don't repeat config on every field:

```
use SpykApp\UppyUpload\UppyUploadPlugin;

public function panel(Panel $panel): Panel
{
    return $panel
        ->plugin(
            UppyUploadPlugin::make()
                ->companionUrl('https://companion.yoursite.com')
                ->disk('s3')
        );
}
```

Configuration
-------------

[](#configuration)

After publishing, edit `config/uppy-upload.php`:

```
return [
    'disk' => env('UPPY_UPLOAD_DISK', 'public'),
    'directory' => env('UPPY_UPLOAD_DIRECTORY', 'uploads'),
    'chunk_size' => env('UPPY_UPLOAD_CHUNK_SIZE', 5 * 1024 * 1024),
    'route_prefix' => env('UPPY_UPLOAD_ROUTE_PREFIX', 'uppy'),
    'middleware' => ['web'],
    'companion_url' => env('UPPY_COMPANION_URL', null),
    'remote_sources' => ['GoogleDrive', 'OneDrive', 'Dropbox', 'Url'],
    'uppy_version' => env('UPPY_VERSION', '5.2.1'),
];
```

Or use `.env`:

```
UPPY_UPLOAD_DISK=s3
UPPY_UPLOAD_DIRECTORY=uploads
UPPY_COMPANION_URL=https://companion.yoursite.com
```

Companion Server (for remote sources)
-------------------------------------

[](#companion-server-for-remote-sources)

Required only if you want Google Drive, OneDrive, Dropbox support.

```
docker run -d \
  --name companion \
  --restart unless-stopped \
  -p 127.0.0.1:3890:3890 \
  -v companion_data:/output \
  -e COMPANION_PORT=3890 \
  -e COMPANION_SECRET=your-secret-here \
  -e COMPANION_DOMAIN=companion.yoursite.com \
  -e COMPANION_PROTOCOL=https \
  -e COMPANION_DATADIR=/output \
  -e COMPANION_UPLOAD_URLS="https://yoursite.com/uppy/.*" \
  -e COMPANION_GOOGLE_KEY=your-google-client-id \
  -e COMPANION_GOOGLE_SECRET=your-google-secret \
  -e COMPANION_ONEDRIVE_KEY=your-azure-client-id \
  -e COMPANION_ONEDRIVE_SECRET=your-azure-secret \
  transloadit/companion:latest
```

**OAuth redirect URIs:**

- Google: `https://companion.yoursite.com/drive/redirect`
- OneDrive: `https://companion.yoursite.com/onedrive/redirect`

Translations
------------

[](#translations)

**Included languages:** English, Arabic, French, German, Spanish, Portuguese (BR), Dutch, Turkish, Chinese (Simplified), Hindi, Urdu

**Adding a new language:**

1. Publish translations: `php artisan vendor:publish --tag="uppy-upload-translations"`
2. Copy `lang/vendor/uppy-upload/en/uppy.php` to your locale folder, e.g. `lang/vendor/uppy-upload/ja/uppy.php`
3. Translate the strings

Uppy's own UI strings (buttons, status messages) are automatically loaded from CDN based on the app locale.

Credits
-------

[](#credits)

- [Sanchit Patil](https://github.com/sanchitspatil)
- [All Contributors](../../contributors)

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.

###  Health Score

42

—

FairBetter than 90% of packages

Maintenance84

Actively maintained with recent releases

Popularity23

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity44

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

2

Last Release

83d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/619d85ca59369ebee5c640beac15488b61f6d80e4cbb170d82ea422e665341bd?d=identicon)[sanchitpatil](/maintainers/sanchitpatil)

---

Top Contributors

[![sanchitspatil](https://avatars.githubusercontent.com/u/106558065?v=4)](https://github.com/sanchitspatil "sanchitspatil (4 commits)")

---

Tags

laravels3uploaddropboxOneDrivefile-uploadgoogle-driveuppyfilamentchunked-upload

### Embed Badge

![Health badge](/badges/spykapps-filament-uppy-upload/health.svg)

```
[![Health](https://phpackages.com/badges/spykapps-filament-uppy-upload/health.svg)](https://phpackages.com/packages/spykapps-filament-uppy-upload)
```

###  Alternatives

[mwguerra/filemanager

A full-featured file manager package for Laravel and Filament v5 with dual operating modes, drag-and-drop uploads, S3/MinIO support, and comprehensive security features.

718.5k1](/packages/mwguerra-filemanager)[kingofcode/laravel-uploadable

Laravel Uploadable trait to automatically upload images and files with minimum configuration

286.4k](/packages/kingofcode-laravel-uploadable)[josefbehr/filament-spatie-media-library-croppie

A filament form field for image upload using spatie media library and croppie.js

126.6k](/packages/josefbehr-filament-spatie-media-library-croppie)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
