PHPackages                             sitegeist/fusionform-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. sitegeist/fusionform-upload

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

sitegeist/fusionform-upload
===========================

v2.0.0(9mo ago)131.1k↓36.7%1PHP

Since Apr 3Pushed 8mo ago1 watchersCompare

[ Source](https://github.com/sitegeist/Sitegeist.FusionForm.Upload)[ Packagist](https://packagist.org/packages/sitegeist/fusionform-upload)[ RSS](/packages/sitegeist-fusionform-upload/feed)WikiDiscussions 2.0 Synced yesterday

READMEChangelog (4)Dependencies (1)Versions (8)Used By (1)

Sitegeist.FusionForm.Upload
===========================

[](#sitegeistfusionformupload)

Alternate implementations of `Neos.Fusion.Forms:Upload`
-------------------------------------------------------

[](#alternate-implementations-of-neosfusionformsupload)

The package implements file uploads for Fusion.Forms with the main deviation that uploaded files are persisted in a cache and not as persistent resources. This has the advantage that resources do not have to manually cleaned and are deleted after the configured cache period automatically.

To achieve this the package adds the classes `\Sitegeist\FusionForm\Upload\Domain\CachedUploadedFile` which is a version of the psr-uploaded file that has an additional cache-identifier. For uploading multiple files the collection `\Sitegeist\FusionForm\Upload\Domain\CachedUploadedFileCollection` is added aswell. For both classed type converters are provided that ensure that values are cached and previously submitted values are restored for processing.

!!! This package does not support the RuntimeForm MultiStepProcess yet, this may be added in future versions !!!

### Authors &amp; Sponsors

[](#authors--sponsors)

- Martin Ficzel -

*The development and the public-releases of this package is generously sponsored by our employer .*

### Fusion prototype - `Sitegeist.FusionForm.Upload:Field.Upload`

[](#fusion-prototype---sitegeistfusionformuploadfieldupload)

#### Single file upload

[](#single-file-upload)

The prototype `Sitegeist.FusionForm.Upload:Field.Upload` allows to render a single file field. It will usually be rendered in a field-container together with a rendering of previously uploaded files. The submitted value should be interpreted as `\Sitegeist\FusionForm\Upload\Domain\CachedUploadedFile` by the receiving controller or the runtime form schema.

```

        {field.getCurrentValue().clientFilename} ({field.getCurrentValue().clientMediaType}/{field.getCurrentValue().size})

```

The according schema runtime forms will likely look like this.

```
file = ${Form.Schema.forType('Sitegeist\\FusionForm\\Upload\\Domain\\CachedUploadedFile')}
requiredFile = ${Form.Schema.forType('Sitegeist\\FusionForm\\Upload\\Domain\\CachedUploadedFile').required}
jpgFile = ${Form.Schema.forType('Sitegeist\\FusionForm\\Upload\\Domain\\CachedUploadedFile').validator('Sitegeist.FusionForm.Upload:UploadedFile', {'allowedExtensions': ["jpg"]})}

```

#### Multio file upload

[](#multio-file-upload)

For multiple uploads the prototype `Sitegeist.FusionForm.Upload:Field.Upload` supports the `field.multiple` property. It will usually be rendered in a field-container together with a rendering of previously uploaded files. The submitted value should be interpreted as `\Sitegeist\FusionForm\Upload\Domain\CachedUploadedFileCollection` by the receiving controller or the runtime form schema.

```

            {item.clientFilename} ({item.clientMediaType} / {item.size})

```

The according schema runtime forms will likely look like this.

```
file = ${Form.Schema.forType('Sitegeist\\FusionForm\\Upload\\Domain\\CachedUploadedFileCollection')}
requiredFile = ${Form.Schema.forType('Sitegeist\\FusionForm\\Upload\\Domain\\CachedUploadedFileCollection').required}
jpgFile = ${Form.Schema.forType('Sitegeist\\FusionForm\\Upload\\Domain\\CachedUploadedFileCollection').validator('Sitegeist.FusionForm.Upload:UploadedFileCollection', {'allowedExtensions': ["jpg"]})}

```

Attaching uploaded files in emails
----------------------------------

[](#attaching-uploaded-files-in-emails)

Since the files implement the interface `\Psr\Http\Message\UploadedFileInterface` the existing Email Action can already handle those types.

```
email {
    type = 'Neos.Fusion.Form.Runtime:Email'
    options {
        attachments = Neos.Fusion:DataStructure {
          file = ${data.file}
        }
    }
}

```

CachedUploadedFileCollection can be assigned directly to the mail attachments.

```
email {
    type = 'Neos.Fusion.Form.Runtime:Email'
    options {
        attachments = ${data.files.asArray}
    }
}

```

UploadedFile caching
--------------------

[](#uploadedfile-caching)

The uploaded files are persisted in the `Sitegeist_FusionForm_Upload_UploadedFileCache` which allows to configure altenate cache backends and the cache lifetime.

```
Sitegeist_FusionForm_Upload_UploadedFileCache:
  frontend: Neos\Cache\Frontend\VariableFrontend
  backend: Neos\Cache\Backend\FileBackend
  backendOptions:
    defaultLifetime: 3600
```

```
./flow flow:cache:flushone Sitegeist_FusionForm_Upload_UploadedFileCache
```

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

[](#installation)

Sitegeist.Taxonomy is available via packagist run `composer require sitegeist/fusionform-upload` to install.

We use semantic-versioning so every breaking change will increase the major-version number.

Contribution
------------

[](#contribution)

We will gladly accept contributions. Please send us pull requests.

License
-------

[](#license)

See [LICENSE](LICENSE)

###  Health Score

40

—

FairBetter than 86% of packages

Maintenance58

Moderate activity, may be stable

Popularity30

Limited adoption so far

Community13

Small or concentrated contributor base

Maturity50

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 90.9% 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 ~181 days

Recently: every ~219 days

Total

6

Last Release

281d ago

Major Versions

v1.0.2 → 2.0.x-dev2025-09-25

### Community

Maintainers

![](https://www.gravatar.com/avatar/51e0a02d8e12b73949ec858638aa7e295e103022cc5a879f86ac8532c2c170bd?d=identicon)[sitegeist](/maintainers/sitegeist)

![](https://www.gravatar.com/avatar/829b4ccb51e8cff3c1e4b59d60cfe8d1b86f6d77fc31a6b3fc99227f432542ca?d=identicon)[mficzel](/maintainers/mficzel)

---

Top Contributors

[![mficzel](https://avatars.githubusercontent.com/u/1309380?v=4)](https://github.com/mficzel "mficzel (10 commits)")[![nezaniel](https://avatars.githubusercontent.com/u/1687674?v=4)](https://github.com/nezaniel "nezaniel (1 commits)")

---

Tags

formsfusionneoscms

### Embed Badge

![Health badge](/badges/sitegeist-fusionform-upload/health.svg)

```
[![Health](https://phpackages.com/badges/sitegeist-fusionform-upload/health.svg)](https://phpackages.com/packages/sitegeist-fusionform-upload)
```

###  Alternatives

[neos/neos

An open source Content Application Platform based on Flow. A set of core Content Management features is resting within a larger context that allows you to build a perfectly customized experience for your users.

1151.0M777](/packages/neos-neos)[neos/neos-development-collection

Neos packages in a joined repository for pull requests.

267103.9k1](/packages/neos-neos-development-collection)[neos/demo

Site package for the Neos Demo Site

18188.3k10](/packages/neos-demo)[sandstorm/neostwofactorauthentication

1327.0k](/packages/sandstorm-neostwofactorauthentication)

PHPackages © 2026

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