PHPackages                             t3n/graphql-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. [API Development](/categories/api)
4. /
5. t3n/graphql-upload

AbandonedArchivedNeos-package[API Development](/categories/api)

t3n/graphql-upload
==================

Extension for t3n/graphql that implements upload-handling

2.1.0(4y ago)295.6k↓47%3PHPPHP &gt;=7.3

Since Jun 17Pushed 9mo agoCompare

[ Source](https://github.com/t3n/graphql-upload)[ Packagist](https://packagist.org/packages/t3n/graphql-upload)[ RSS](/packages/t3n-graphql-upload/feed)WikiDiscussions master Synced 1w ago

READMEChangelog (4)Dependencies (2)Versions (6)Used By (0)

Warning

**This plugin is no longer being maintained and there is no superseding package at this time**

t3n.GraphQL.Upload
==================

[](#t3ngraphqlupload)

Sidecar package for [t3n/graphql](https://github.com/t3n/graphql) that brings an `Upload` scalar and enables you to handle file uploads in your schema.

Simply install the package via composer:

```
composer require t3n/graphql-upload

```

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

[](#configuration)

This package ships all needed parts. However, you must add the typeDefs and the Resolver to your schema like this:

```
t3n:
  GraphQL:
    endpoints:
      'your-endpoint': #use your endpoint variable here
        schemas:
          upload:
            typeDefs: 'resource://t3n.GraphQL.Upload/Private/GraphQL/schema.upload.graphql'
            resolvers:
              Upload: 't3n\GraphQL\Upload\Resolver\Type\UploadResolver'
```

This is everything you need to do. Once configured you can use the `Upload` scalar in your app.

Usage
-----

[](#usage)

To use the `Upload` scalar you might want to add it as an arg to a mutation like this:

```
type Mutation {
    uploadFile(file: Upload): String
}
```

This package will handle the upload itself and pass an `Neos\Http\Factories\FlowUploadedFile` to your `MutationResolver`. Within your resolver method your could for instance import your resource:

```
class MutationResolver implements ResolverInterface
{
    /**
     * @Flow\Inject
     *
     * @var ResourceManager
     */
    protected $resourceManager;

    public function uploadFile($_, $variables): string
    {
        /** @var FlowUploadedFile $file */
        $file = $variables['file'];

        $resource = $this->resourceManager->importResource($file->getStream()->detach());
        $resource->setFilename($file->getClientFilename());
        $resource->setMediaType($file->getClientMediaType());

        return $file->getClientFilename();
    }
}
```

Some notes
----------

[](#some-notes)

To actually use file upload your frontend client must use `multipart/form-data` in your forms. This Package is tested with a react app that uses

###  Health Score

39

—

LowBetter than 84% of packages

Maintenance42

Moderate activity, may be stable

Popularity35

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity54

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 60% 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 ~218 days

Total

4

Last Release

1526d ago

Major Versions

1.0.0 → 2.0.02021-01-28

PHP version history (3 changes)1.0.0PHP &gt;=7.2

2.0.0PHP ^7.3

2.1.0PHP &gt;=7.3

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/769789?v=4)[Johannes Steu](/maintainers/johannessteu)[@johannessteu](https://github.com/johannessteu)

---

Top Contributors

[![johannessteu](https://avatars.githubusercontent.com/u/769789?v=4)](https://github.com/johannessteu "johannessteu (6 commits)")[![das-nagnag](https://avatars.githubusercontent.com/u/5262896?v=4)](https://github.com/das-nagnag "das-nagnag (2 commits)")[![Sebobo](https://avatars.githubusercontent.com/u/596967?v=4)](https://github.com/Sebobo "Sebobo (2 commits)")

---

Tags

flowframeworkflowpackagegraphqlneoscmsphp

### Embed Badge

![Health badge](/badges/t3n-graphql-upload/health.svg)

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

###  Alternatives

[wwwision/graphql

Base package to create GraphQL endpoints with Flow

2116.1k1](/packages/wwwision-graphql)

PHPackages © 2026

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