Skip to content

dropzone ​

dropzone Allows you to easily add a drag and drop file upload component to any form. Files are posted to any upload service such as file.io and uploadcare. The data model is passed back all relevant meta information.

File.io ​

The default configuration uses file.io as ephemeral storage. Using additional options you can adjust the length of time a file lives for (default is 2 weeks). Typically upon form submission, your FileMaker hook script would insert the data from the storage location into a container etc in your database.

AWS S3 ​

Files can be uploaded to an AWS S3 bucket. You will need to first provision the bucket. See the following page for complete setup instructions

dropzone-to-s3.md

Base64 ​

KeyValue(s)TypeDescription
typedropzonestring
modelArrayArray of uploaded file metadata. Does not have to be predefined.
useCustomSlot()booleanIf true, then the HTML in the html key will be inserted into the target drop area, defaults false
includeB64booleanIf true, base64 encoded data is returned in the response, defaults false.
optionsobjectObject of additional options. These will override defaults. and are passed directly into dropzone.js
htmlstringOptional custom HTML rendered inside the drop area when useCustomSlot is true
awss3 / s3objectOptional AWS S3 configuration passed through to the underlying vue-dropzone S3 integration
s3UploadSuccessfunction / _actionsOptional callback for successful S3 uploads
s3UploadErrorfunction / _actionsOptional callback for S3 upload errors

Minimal Usage Example ​

yaml
{
  "label": "Upload File(s)",
  "model": "files",
  "styleClasses": "col-md-8",
  "type": "dropzone",
  "options": {
    // all additional items and overrides go here
  }
}

"Dropzone Element"

Additional Options ​

You can totally customize the dropzone component and control things like file size limits and number of files uploaded.

BetterForms also exposes a few integration-specific additions on top of the standard Dropzone options:

  • awss3 or s3 to enable the S3 upload mode
  • html plus useCustomSlot to replace the default dropzone content
  • s3UploadSuccess and s3UploadError hooks for S3-specific upload events

Reference ​

vue-dropzone options http://www.dropzonejs.com/#configuration

Example Data model ​

yaml
[
  {
    "file": {
      "upload": {
        "progress": 100,
        "total": 67666,
        "bytesSent": 67666,
        "filename": "1404329470648.jpeg"
      },
      "status": "success",
      "previewElement": {},
      "previewTemplate": {},
      "_removeLink": {},
      "accepted": true,
      "processing": true,
      "xhr": {},
      "width": 450,
      "height": 385
    },
    "response": {
      "success": true,
      "key": "RSadAH",
      "link": "https://file.io/RSadAH",
      "expiry": "14 days"
    }
  }
]

Reference ​

vue-dropzone options

http://www.dropzonejs.com/#configuration

Klai Studio documentation