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(10mo ago)132.7k↓34.8%2PHP

Since Apr 3Pushed 10mo 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 2w ago

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

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

Maintenance54

Moderate activity, may be stable

Popularity30

Limited adoption so far

Community14

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

326d 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.0M838](/packages/neos-neos)[neos/neos-development-collection

Neos packages in a joined repository for pull requests.

267104.3k1](/packages/neos-neos-development-collection)[dmhendricks/file-icon-vectors

A collection of file type icons in SVG format.

37880.0k11](/packages/dmhendricks-file-icon-vectors)[neos/demo

Site package for the Neos Demo Site

18191.3k12](/packages/neos-demo)[barracudanetworks/archivestream-php

A library for dynamically streaming dynamic tar or zip files without the need to have the complete file stored on the server.

77196.8k1](/packages/barracudanetworks-archivestream-php)[sandstorm/neostwofactorauthentication

1328.7k](/packages/sandstorm-neostwofactorauthentication)

PHPackages © 2026

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