diff --git a/config/install/dropzonejs.settings.yml b/config/install/dropzonejs.settings.yml
index 940ac0d..5a2b111 100644
--- a/config/install/dropzonejs.settings.yml
+++ b/config/install/dropzonejs.settings.yml
@@ -1,2 +1,3 @@
 tmp_upload_scheme: temporary
 filename_transliteration: true
+upload_timeout_ms: 0
diff --git a/config/schema/dropzonejs.schema.yml b/config/schema/dropzonejs.schema.yml
index ab75420..587ccae 100644
--- a/config/schema/dropzonejs.schema.yml
+++ b/config/schema/dropzonejs.schema.yml
@@ -8,3 +8,6 @@ dropzonejs.settings:
     filename_transliteration:
       type: boolean
       label: 'Transliterate names of uploaded files'
+    upload_timeout_ms:
+      type: integer
+      label: 'Upload timeout'
diff --git a/dropzonejs.install b/dropzonejs.install
index 679b46c..17f9f88 100644
--- a/dropzonejs.install
+++ b/dropzonejs.install
@@ -72,3 +72,14 @@ function dropzonejs_update_8002() {
   $config->set('filename_transliteration', TRUE);
   $config->save(TRUE);
 }
+
+/**
+ * Set default value for upload timeout.
+ */
+function dropzonejs_update_8003() {
+  $config_factory = \Drupal::configFactory();
+  $config = $config_factory->getEditable('dropzonejs.settings');
+  $config->clear('upload_timeout_ms');
+  $config->set('upload_timeout_ms', 0);
+  $config->save(TRUE);
+}
diff --git a/src/Element/DropzoneJs.php b/src/Element/DropzoneJs.php
index 11aedb1..2293a51 100644
--- a/src/Element/DropzoneJs.php
+++ b/src/Element/DropzoneJs.php
@@ -138,6 +138,7 @@ class DropzoneJs extends FormElement {
           'dictDefaultMessage' => Html::escape($element['#dropzone_description']),
           'acceptedFiles' => '.' . str_replace(' ', ',.', self::getValidExtensions($element)),
           'maxFiles' => $element['#max_files'],
+          'timeout' => \Drupal::configFactory()->get('dropzonejs.settings')->get('upload_timeout_ms'),
         ],
       ],
     ];
