PHPackages                             gaya/upload-widget - 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. gaya/upload-widget

ActiveTypo3-cms-extension[File &amp; Storage](/categories/file-storage)

gaya/upload-widget
==================

Provide a widget to upload file with a progress bar.

1.0.0(3y ago)05GPL-2.0-or-laterPHPPHP ^8.0

Since Feb 8Pushed 3y ago3 watchersCompare

[ Source](https://github.com/agence-gaya/upload_widget)[ Packagist](https://packagist.org/packages/gaya/upload-widget)[ Docs](https://github.com/agence-gaya/upload_widget)[ RSS](/packages/gaya-upload-widget/feed)WikiDiscussions master Synced 2d ago

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

TYPO3 Extension upload\_widget
==============================

[](#typo3-extension-upload_widget)

This extension provides a frontend widget to upload files in extbase forms.

This includes:

- a view helper for your template
- a controller to store the uploaded file in FAL
- a property validator for your model (DTO)
- a service to create a reference between the uploaded file and your final model

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

[](#installation)

Intall upload\_widget with Composer:

`composer require gaya/upload_widget`

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

[](#configuration)

In your root template, include the TypoScript "Upload Widget"

Usage
-----

[](#usage)

You can test this extension by installing gaya/upload\_widget\_example. All explanations below come from this.

### Form model

[](#form-model)

Create a DTO for your form and add the validator for the file property:

```
/**
 * @var string
 * @Extbase\Validate("NotEmpty")
 * @Extbase\Validate("\GAYA\UploadWidget\Validation\Validator\ProtectedFileUidValidator")
 */
protected string $file = '';

```

### Template

[](#template)

Call the view helper in your form template:

```

        File

```

### Controller

[](#controller)

When your DTO is validated, you simply have to create a reference between the uploaded file and your stored object:

```
public function createAction(ExampleForm $exampleForm)
{
    $example = GeneralUtility::makeInstance(Example::class);
    $example->setFile(
        $this->uploadService->createExtbaseFileReferenceFromFile(
            $this->uploadService->getFile($exampleForm->getFile()),
            'tx_uploadwidgetexample_domain_model_example'
        )
    );

    $this->exampleRepository->add($example);
}

```

###  Health Score

23

—

LowBetter than 26% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity4

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity51

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

1243d ago

### Community

Maintainers

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

---

Top Contributors

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

---

Tags

fileuploadwidgetextbaseTYPO3 CMSfal

### Embed Badge

![Health badge](/badges/gaya-upload-widget/health.svg)

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

###  Alternatives

[friendsoftypo3/content-blocks

TYPO3 CMS Content Blocks - Content Types API | Define reusable components via YAML

103519.9k53](/packages/friendsoftypo3-content-blocks)[pagemachine/typo3-formlog

Form log for TYPO3

23238.6k8](/packages/pagemachine-typo3-formlog)[web-vision/wv_deepltranslate

DeepL Translate (CORE) - This extension provides option to translate content element, and TCA record texts to DeepL supported languages.

33304.3k](/packages/web-vision-wv-deepltranslate)[web-vision/deepltranslate-core

DeepL Translate (CORE) - This extension provides option to translate content element, and TCA record texts to DeepL supported languages.

33142.5k8](/packages/web-vision-deepltranslate-core)[typo3/cms-install

TYPO3 CMS Install Tool - The Install Tool is used for installation, upgrade, system administration and setup tasks.

1812.3M495](/packages/typo3-cms-install)[yoast-seo-for-typo3/yoast_seo

Yoast SEO for TYPO3

511.7M9](/packages/yoast-seo-for-typo3-yoast-seo)

PHPackages © 2026

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