PHPackages                             iperamuna/filament-chunk-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. iperamuna/filament-chunk-upload

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

iperamuna/filament-chunk-upload
===============================

Chunked File Upload implementation for Filament 5 Forms

1.0.0(4mo ago)02[1 issues](https://github.com/iperamuna/filament-chunk-upload/issues)MITPHPPHP ^8.2

Since Feb 14Pushed 4mo agoCompare

[ Source](https://github.com/iperamuna/filament-chunk-upload)[ Packagist](https://packagist.org/packages/iperamuna/filament-chunk-upload)[ Docs](https://github.com/iperamuna/filament-chunk-upload)[ RSS](/packages/iperamuna-filament-chunk-upload/feed)WikiDiscussions main Synced today

READMEChangelog (1)Dependencies (8)Versions (2)Used By (0)

[![Latest Version on Packagist](https://camo.githubusercontent.com/f3407f5878cebf7a16f3f716bb2ff23677e004405392bb2f19fe1dd80685946f/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f69706572616d756e612f66696c616d656e742d6368756e6b2d75706c6f61642e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/iperamuna/filament-chunk-upload)[![Total Downloads](https://camo.githubusercontent.com/7ba4d79c99efb4a36365c9c0536a5417dbc63a5f186e8e35d27f43c5d7fcd4a8/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f69706572616d756e612f66696c616d656e742d6368756e6b2d75706c6f61642e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/iperamuna/filament-chunk-upload)[![License](https://camo.githubusercontent.com/7a3a463b53a4ae590dbde3dffd829c994b56f150ab50521087266ff0f3a65bfb/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f69706572616d756e612f66696c616d656e742d6368756e6b2d75706c6f61642e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/iperamuna/filament-chunk-upload)

Filament Chunk Upload
=====================

[](#filament-chunk-upload)

A Filament form component that enables chunked file uploads using FilePond, powered by `rahulhaque/laravel-filepond`. This package is designed to handle large file uploads reliably by splitting them into smaller chunks.

Requirements
------------

[](#requirements)

- PHP 8.2+
- Laravel 10+
- Filament 3+ (v5 supported)
- `rahulhaque/laravel-filepond` package installed and configured

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

[](#installation)

You can install the package via composer:

```
composer require iperamuna/filament-chunk-upload
```

Ensure you have configured `rahulhaque/laravel-filepond` according to its documentation.

### 1. Publish Configuration and Migrations

[](#1-publish-configuration-and-migrations)

After installing the package, publish the configuration and migration files:

```
php artisan vendor:publish --provider="RahulHaque\Filepond\FilepondServiceProvider"
```

### 2. Run Migrations

[](#2-run-migrations)

Run the migrations to create the temporary file storage table:

```
php artisan migrate
```

### 3. Configure FilePond

[](#3-configure-filepond)

Update your `.env` file to configure the disk and URL for FilePond:

```
FILEPOND_DISK=private
FILEPOND_TEMP_DISK=local
FILEPOND_URL=/filepond
```

Make sure your `config/filesystems.php` has a `private` disk defined if you choose to use it (recommended for secure uploads).

```
'private' => [
    'driver' => 'local',
    'root' => storage_path('app/private'),
    'visibility' => 'private',
],
```

Usage
-----

[](#usage)

use `Iperamuna\FilamentChunkUpload\ChunkedFileUpload` in your Filament resources or forms:

```
use Iperamuna\FilamentChunkUpload\ChunkedFileUpload;

ChunkedFileUpload::make('attachment')
    ->label('Upload File')
    ->chunkSize(10485760) // Optional: Set chunk size in bytes (default 10MB)
    ->directory('uploads')
    ->visibility('private')
    ->required();
```

### Features

[](#features)

- **Chunked Uploads**: Automatically splits large files into chunks based on `chunkSize`.
- **Secure Dehydration**: Handles the secure transfer of temporary files to their final destination upon form submission.
- **Filament Integration**: inherites standard Filament validation and storage configuration (disk, directory, visibility).

Serving Large Files (Secure Download)
-------------------------------------

[](#serving-large-files-secure-download)

Since this package is designed for large files often stored on a `private` disk, you should use a streamed download response to avoid memory exhaustion (OOM) errors in PHP.

Add a route to your `routes/web.php` to handle secure, signed downloads:

```
use Illuminate\Support\Facades\Storage;

Route::get('/attachments/{attachment}/download', function (App\Models\Attachment $attachment) {
    // 1. Verify Signed URL for security
    if (! request()->hasValidSignature()) {
        abort(403);
    }

    $diskName = config('filament.default_disk', 'private');

    // 2. Stream the file to the client
    // We use streamDownload with manual buffer clearing to prevent memory issues with large files
    return response()->streamDownload(function () use ($diskName, $attachment) {
        $stream = Storage::disk($diskName)->readStream($attachment->file_path);

        // Clear output buffer to prevent OOM
        if (ob_get_level()) {
            ob_end_clean();
        }

        fpassthru($stream);

        if (is_resource($stream)) {
            fclose($stream);
        }
    }, $attachment->file_name);
})->name('attachments.download');
```

You can then generate a download link in your Filament resource or Blade view:

```
use Illuminate\Support\Facades\URL;

URL::signedRoute('attachments.download', ['attachment' => $record->id]);
```

Please see [CHANGELOG](CHANGELOG.md) for more information on what has changed recently.

Credits
-------

[](#credits)

- [Indunil Peramuna](https://github.com/iperamuna)
- [All Contributors](../../contributors)

License
-------

[](#license)

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

###  Health Score

34

—

LowBetter than 75% of packages

Maintenance74

Regular maintenance activity

Popularity2

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity47

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

Unknown

Total

1

Last Release

140d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/e7f282b7449477d5baaf64bdb40fcb7d9c8c638fb96a431413c7293344e3182f?d=identicon)[iperamuna](/maintainers/iperamuna)

---

Top Contributors

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

---

Tags

laravelfilamentfilepondchunk-uploadfilament-chunk-upload

###  Code Quality

TestsPest

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/iperamuna-filament-chunk-upload/health.svg)

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

###  Alternatives

[rawilk/profile-filament-plugin

Profile &amp; MFA starter kit for filament.

3914.6k](/packages/rawilk-profile-filament-plugin)[stephenjude/filament-jetstream

A Laravel starter kit built with Filament inspired by Jetstream.

17760.2k3](/packages/stephenjude-filament-jetstream)[stephenjude/filament-two-factor-authentication

Filament Two Factor Authentication: Google 2FA + Passkey Authentication

84215.9k9](/packages/stephenjude-filament-two-factor-authentication)[marcelweidum/filament-passkeys

Use passkeys in your filamentphp app

6649.5k1](/packages/marcelweidum-filament-passkeys)[harris21/laravel-fuse

Circuit breaker for Laravel queue jobs. Protect your workers from cascading failures.

44855.7k](/packages/harris21-laravel-fuse)[backstage/mails

View logged mails and events in a beautiful Filament UI.

16120.0k](/packages/backstage-mails)

PHPackages © 2026

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