PHPackages                             nimeso/dropzone - 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. nimeso/dropzone

ActiveSilverstripe-module[File &amp; Storage](/categories/file-storage)

nimeso/dropzone
===============

An HTML5 upload field for the CMS and frontend forms.

1.1.1(10y ago)01.3k1[2 PRs](https://github.com/nimeso/silverstripe-dropzone/pulls)BSD-3-ClauseJavaScript

Since Jun 10Pushed 10y ago1 watchersCompare

[ Source](https://github.com/nimeso/silverstripe-dropzone)[ Packagist](https://packagist.org/packages/nimeso/dropzone)[ RSS](/packages/nimeso-dropzone/feed)WikiDiscussions master Synced 2mo ago

READMEChangelogDependencies (1)Versions (8)Used By (0)

Dropzone for SilverStripe
=========================

[](#dropzone-for-silverstripe)

#### Upload with sanity.

[](#upload-with-sanity)

Introduction
------------

[](#introduction)

The Dropzone module provides `FileAttachmentField`, a robust HTML5 uploading interfaces for SilverStripe, allowing forms to save file uploads to `DataObject` instances.

Features
--------

[](#features)

- Upload on the frontend, or in the CMS, with one consistent interface
- Drag-and-drop uploading
- Automatic client-side thumbnailing
- Grid view / List view
- Upload progress
- Limit file count, file size, file type
- Permissions for removing/deleting files
- No jQuery dependency

Screenshots
-----------

[](#screenshots)

#### Grid view

[](#grid-view)

[![](https://raw.githubusercontent.com/unclecheese/silverstripe-dropzone/master/images/screenshots/screen1.png)](https://raw.githubusercontent.com/unclecheese/silverstripe-dropzone/master/images/screenshots/screen1.png)

#### List view

[](#list-view)

[![](https://raw.githubusercontent.com/unclecheese/silverstripe-dropzone/master/images/screenshots/screen2.png)](https://raw.githubusercontent.com/unclecheese/silverstripe-dropzone/master/images/screenshots/screen2.png)

#### Remove/delete files

[](#removedelete-files)

[![](https://raw.githubusercontent.com/unclecheese/silverstripe-dropzone/master/images/screenshots/screen3.png)](https://raw.githubusercontent.com/unclecheese/silverstripe-dropzone/master/images/screenshots/screen3.png)

#### Beautiful error handling

[](#beautiful-error-handling)

[![](https://raw.githubusercontent.com/unclecheese/silverstripe-dropzone/master/images/screenshots/screen4.png)](https://raw.githubusercontent.com/unclecheese/silverstripe-dropzone/master/images/screenshots/screen4.png)

#### Any thumbnail size you like

[](#any-thumbnail-size-you-like)

[![](https://raw.githubusercontent.com/unclecheese/silverstripe-dropzone/master/images/screenshots/screen5.png)](https://raw.githubusercontent.com/unclecheese/silverstripe-dropzone/master/images/screenshots/screen5.png)

Usage
-----

[](#usage)

The field instantiates similarly to `UploadField`, taking the name of the file relationship and a label, as the first two arguments. Once instantiated, there are many ways to configure the UI.

```
FileAttachmentField::create('MyFile', 'Upload a file')
  ->setView('grid')
```

If the form holding the upload field is bound to a record, (i.e. with `loadDataFrom()`), the upload field will automatically allow multiple files if the relation is a `has_many` or `many_many`. If the form is not bound to a record, you can use `setMultiple(true)`.

Image-only uploads can be forced using the `imagesOnly()` method. If the form is bound to a record, and the relation points to an `Image` class, this will be automatically set.

### More advanced options

[](#more-advanced-options)

```
FileAttachmentField::create('MyFiles', 'Upload some  files')
  ->setThumbnailHeight(180)
  ->setThumbnailWidth(180)
  ->setAutoProcessQueue(false) // do not upload files until user clicks an upload button
  ->setMaxFilesize(10) // 10 megabytes. Defaults to PHP's upload_max_filesize ini setting
  ->setAcceptedFiles(array('.pdf','.doc','.docx'))
  ->setPermissions(array(
    'delete' => false,
    'detach' => function () {
      return Member::currentUser() && Member::currentUser()->inGroup('editors');
    }
  ));
```

Image uploads get a few extra options.

```
FileAttachementField::create('MyImage','Upload an image')
    ->imagesOnly() // If bound to a record, with a relation to 'Image', this isn't necessary.
    ->setMaxResolution(50000000); // Do not accept images over 5 megapixels
```

### Default settings

[](#default-settings)

Default values for most settings can be found in the `config.yml` file included with the module.

Usage in the CMS
----------------

[](#usage-in-the-cms)

`FileAttachmentField` can be used as a replacement for `UploadField` in the CMS.

Interacting with the Dropzone interface programatically
-------------------------------------------------------

[](#interacting-with-the-dropzone-interface-programatically)

For custom integrations, you may want to access the `UploadInterface` object that manages the upload UI (see `file_attachment_field.js`). You can do that one of two ways:

- If you have jQuery installed, simply access the `dropzoneInterface` data property of the `.dropzone` element

```
$('#MyFileDropzone').data('dropzoneInterface').clear();
```

- If you are not using jQuery, the `UploadInterface` object is injected into the browser global `window.dropzones`, indexed by the id of your `.dropzone` element.

```
window.dropzones.MyFileDropzone.clear();
```

**NB**: The ID of the actual `.dropzone` element by default is the name of the form input, with 'Dropzone' appended to it, so `FileAttachmentField::create('MyFile')` creates a dropzone with an ID of 'MyFileDropzone'

Troubleshooting
---------------

[](#troubleshooting)

Ring Uncle Cheese.

###  Health Score

32

—

LowBetter than 72% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity15

Limited adoption so far

Community13

Small or concentrated contributor base

Maturity68

Established project with proven stability

 Bus Factor1

Top contributor holds 50% 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 ~49 days

Total

4

Last Release

3843d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/7ddefabee067557c7378977145e006944815cfb75595376245ed80c1857efb96?d=identicon)[nimeso](/maintainers/nimeso)

---

Top Contributors

[![nimeso](https://avatars.githubusercontent.com/u/1796069?v=4)](https://github.com/nimeso "nimeso (3 commits)")[![anselmdk](https://avatars.githubusercontent.com/u/1316533?v=4)](https://github.com/anselmdk "anselmdk (1 commits)")[![Martimiz](https://avatars.githubusercontent.com/u/614243?v=4)](https://github.com/Martimiz "Martimiz (1 commits)")[![yvestrublin](https://avatars.githubusercontent.com/u/254103?v=4)](https://github.com/yvestrublin "yvestrublin (1 commits)")

---

Tags

silverstripefilescmsuploadFormsuploader

### Embed Badge

![Health badge](/badges/nimeso-dropzone/health.svg)

```
[![Health](https://phpackages.com/badges/nimeso-dropzone/health.svg)](https://phpackages.com/packages/nimeso-dropzone)
```

###  Alternatives

[unclecheese/dropzone

An HTML5 upload field for the CMS and frontend forms.

46130.7k6](/packages/unclecheese-dropzone)[unclecheese/silverstripe-kickassets

Provides an alternative file management interface for SilverStripe CMS with drag-and-drop, multi-selection, and several other desktop-like UI conventions.

4728.3k1](/packages/unclecheese-silverstripe-kickassets)[unclecheese/kickassets

Provides an alternative file management interface for SilverStripe CMS with drag-and-drop, multi-selection, and several other desktop-like UI conventions.

484.0k](/packages/unclecheese-kickassets)

PHPackages © 2026

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