PHPackages                             findarace/craft-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. findarace/craft-upload

ActiveCraft-plugin[File &amp; Storage](/categories/file-storage)

findarace/craft-upload
======================

Front-end asset upload for user photos, fields, volumes and folders.

5.0.0(3mo ago)02.7kproprietaryPHP

Since Sep 14Pushed 3mo ago3 watchersCompare

[ Source](https://github.com/findarace/craft-upload)[ Packagist](https://packagist.org/packages/findarace/craft-upload)[ RSS](/packages/findarace-craft-upload/feed)WikiDiscussions develop-v5 Synced 1mo ago

READMEChangelog (5)Dependencies (1)Versions (19)Used By (0)

Upload plugin for Craft CMS
===========================

[](#upload-plugin-for-craft-cms)

The unassuming front end asset uploader for Craft CMS. Use as a standalone uploader or as field in one of your forms:

Features:
---------

[](#features)

- Drop to upload
- Reorder &amp; remove uploads
- Asset previews
- Customisable
- It's Vanilla (Zero dependencies writtin in battle tested javascript)

### Requirements

[](#requirements)

This plugin requires Craft CMS 4.0.0 or later.

### Installation

[](#installation)

To install the plugin, follow these steps:

1. Install with Composer via:

    ```
    composer require findarace/upload

    ```
2. In the Control Panel, go to Settings → Plugins and click the “Install” button for Uploadit.

Using Uploadit
--------------

[](#using-uploadit)

**Options**

```
{{ craft.upload.uploader({
	id: 'myUid',
	name: 'myFieldName',
    assets: [],

    field: 'images',
    element: entry,

    volume: 'myvolume',
	folder: 'my/folder/path',

    preview: 'image',
    transform: 'square',

    limit: 5,
    allowReorder: true,
    allowRemove: true,
    customClass: 'custom--class',

}) }}

```

#### `id` option

[](#id-option)

To drag elements from one list into another, both lists must have the same `group` value. You can also define whether lists can give away, give and keep a copy (`clone`), and receive elements.

- name: `String` — group name
- pull: `true|false|'clone'|function` — ability to move from the list. `clone` — copy the item, rather than move.
- put: `true|false|["foo", "bar"]|function` — whether elements can be added from other lists, or an array of group names from which elements can be taken.
- revertClone: `boolean` — revert cloned element to initial position after moving to a another list.

---

#### `name` option

[](#name-option)

To drag elements from one list into another, both lists must have the same `group` value. You can also define whether lists can give away, give and keep a copy (`clone`), and receive elements.

- name: `String` — group name
- pull: `true|false|'clone'|function` — ability to move from the list. `clone` — copy the item, rather than move.
- put: `true|false|["foo", "bar"]|function` — whether elements can be added from other lists, or an array of group names from which elements can be taken.
- revertClone: `boolean` — revert cloned element to initial position after moving to a another list.

---

#### `assets` option

[](#assets-option)

To drag elements from one list into another, both lists must have the same `group` value. You can also define whether lists can give away, give and keep a copy (`clone`), and receive elements.

- name: `String` — group name
- pull: `true|false|'clone'|function` — ability to move from the list. `clone` — copy the item, rather than move.
- put: `true|false|["foo", "bar"]|function` — whether elements can be added from other lists, or an array of group names from which elements can be taken.
- revertClone: `boolean` — revert cloned element to initial position after moving to a another list.

---

#### `field` option

[](#field-option)

To drag elements from one list into another, both lists must have the same `group` value. You can also define whether lists can give away, give and keep a copy (`clone`), and receive elements.

- name: `String` — group name
- pull: `true|false|'clone'|function` — ability to move from the list. `clone` — copy the item, rather than move.
- put: `true|false|["foo", "bar"]|function` — whether elements can be added from other lists, or an array of group names from which elements can be taken.
- revertClone: `boolean` — revert cloned element to initial position after moving to a another list.

---

#### `element` option

[](#element-option)

To drag elements from one list into another, both lists must have the same `group` value. You can also define whether lists can give away, give and keep a copy (`clone`), and receive elements.

- name: `String` — group name
- pull: `true|false|'clone'|function` — ability to move from the list. `clone` — copy the item, rather than move.
- put: `true|false|["foo", "bar"]|function` — whether elements can be added from other lists, or an array of group names from which elements can be taken.
- revertClone: `boolean` — revert cloned element to initial position after moving to a another list.

---

#### `volume` option

[](#volume-option)

To drag elements from one list into another, both lists must have the same `group` value. You can also define whether lists can give away, give and keep a copy (`clone`), and receive elements.

- name: `String` — group name
- pull: `true|false|'clone'|function` — ability to move from the list. `clone` — copy the item, rather than move.
- put: `true|false|["foo", "bar"]|function` — whether elements can be added from other lists, or an array of group names from which elements can be taken.
- revertClone: `boolean` — revert cloned element to initial position after moving to a another list.

---

**Example Standalone Usage**

```
{{ craft.upload.uploader({
	id: 'myUid',
	name: 'myFieldName',
	assets: [],
	volume: 'myvolume',
	folder: 'my/folder/path',
	preview: 'image',
	transform: 'square',
    themeColour: '#ff00ff',
}) }}

```

[![Linkit](resources/img/customise-labels.png)](resources/img/customise-labels.png)

**Example Form Usage**

```
{{ craft.upload.uploader({
	id: 'myUid',
	name: 'myFieldName',
    assets: [],
    field: 'images',
    element: 345678,
    preview: 'image',
    transform: 'square',
    themeColour: '#ff00ff',
}) }}

```

[![Linkit](resources/img/customise-labels.png)](resources/img/customise-labels.png)

Roadmap
-------

[](#roadmap)

- Better validation
- Translate javascript strings

Note: This plugin will become a paid add-on when the Craft Plugin store becomes available.

Brought to you by [findarace.com](https://findarace.com)

###  Health Score

46

—

FairBetter than 93% of packages

Maintenance79

Regular maintenance activity

Popularity18

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity63

Established project with proven stability

 Bus Factor1

Top contributor holds 75% 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 ~151 days

Recently: every ~260 days

Total

14

Last Release

108d ago

Major Versions

1.1.0 → 4.0.02023-03-29

v4.x-dev → 5.0.02026-01-30

### Community

Maintainers

![](https://www.gravatar.com/avatar/70fdedddb85ce94a02ce6450167439d2cbc16eec3aab34ab001e64d0cd9a9296?d=identicon)[findarace](/maintainers/findarace)

---

Top Contributors

[![shornuk](https://avatars.githubusercontent.com/u/2061819?v=4)](https://github.com/shornuk "shornuk (15 commits)")[![samhibberd](https://avatars.githubusercontent.com/u/1846063?v=4)](https://github.com/samhibberd "samhibberd (4 commits)")[![dgrigg](https://avatars.githubusercontent.com/u/166361?v=4)](https://github.com/dgrigg "dgrigg (1 commits)")

---

Tags

cmsfront-endCraftcraftcmscraft-pluginasset uploaderuploadit

### Embed Badge

![Health badge](/badges/findarace-craft-upload/health.svg)

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

###  Alternatives

[servd/craft-remote-assets

Move CP assets to an external filesystem such as S3

1215.8k](/packages/servd-craft-remote-assets)[weareferal/remote-backup

Backup your database and assets to a remote location

115.5k](/packages/weareferal-remote-backup)[venveo/craft-compress

Create smart zip files from Craft assets on the fly

124.6k](/packages/venveo-craft-compress)[markdrzy/importable

Add CSV data import functionality to the native Table fieldtype.

114.6k2](/packages/markdrzy-importable)

PHPackages © 2026

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