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 1mo 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

22

—

LowBetter than 22% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity4

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity50

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

1195d 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

[kartik-v/yii2-widget-fileinput

An enhanced FileInput widget for Bootstrap 3.x, 4.x &amp; 5.x with file preview, multiple selection, and more features (sub repo split from yii2-widgets)

2286.8M95](/packages/kartik-v-yii2-widget-fileinput)[fluidtypo3/vhs

This is a collection of ViewHelpers for performing rendering tasks that are not natively provided by TYPO3's Fluid templating engine.

1954.1M49](/packages/fluidtypo3-vhs)[causal/image_autoresize

Simplify the way your editors may upload their images: no complex local procedure needed, let TYPO3 automatically resize down their huge images/pictures on-the-fly during upload (or using a command for batch processing) and according to your own business rules (directory/groups). This will highly reduce the footprint on your server and speed-up response time if lots of images are rendered (e.g., in a gallery). Features an EXIF/IPTC extractor to ensure metadata may be used by the FAL indexer even if not preserved upon resizing.

19455.6k](/packages/causal-image-autoresize)[beechit/fal-securedownload

Secure download of assets. Makes it possible to secure FE use of assets/files by setting permissions to folders/files for fe\_groups.

37569.0k3](/packages/beechit-fal-securedownload)[blueimp/jquery-file-upload

File Upload widget for jQuery.

141.5M18](/packages/blueimp-jquery-file-upload)[in2code/in2publish_core

Content publishing extension to connect stage and production server

40135.8k](/packages/in2code-in2publish-core)

PHPackages © 2026

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