diff --git a/src/Plugin/Field/FieldWidget/FileBrowserWidget.php b/src/Plugin/Field/FieldWidget/FileBrowserWidget.php
index d883f15..aa99e2d 100644
--- a/src/Plugin/Field/FieldWidget/FileBrowserWidget.php
+++ b/src/Plugin/Field/FieldWidget/FileBrowserWidget.php
@@ -209,38 +209,50 @@ class FileBrowserWidget extends EntityReferenceBrowserWidget {
     $view_mode = $widget_settings['view_mode'];
     $can_edit = (bool) $widget_settings['field_widget_edit'];
     $has_file_entity = $this->moduleHandler->moduleExists('file_entity');
-
+    $multiple = $this->fieldDefinition->getFieldStorageDefinition()->isMultiple();
     $delta = 0;
-
     $order_class = $field_machine_name . '-delta-order';
-
-    $current = [
-      '#type' => 'table',
-      '#empty' => $this->t('No files yet'),
-      '#attributes' => ['class' => ['entities-list']],
-      '#tabledrag' => [
-        [
-          'action' => 'order',
-          'relationship' => 'sibling',
-          'group' => $order_class,
+  
+    if ($multiple == FALSE) {
+      $current = [
+        '#type' => 'container',
+      ];
+      if (empty($entities)) {
+        $current['empty'] = [
+          '#markup' => '<p>' . $this->t('No file selected.') .'</p>',
+        ];
+      }
+    }
+    else {
+      $current = [
+        '#type' => 'table',
+        '#empty' => $this->t('No files selected.'),
+        '#attributes' => ['class' => ['entities-list']],
+        '#tabledrag' => [
+          [
+            'action' => 'order',
+            'relationship' => 'sibling',
+            'group' => $order_class,
+          ],
         ],
-      ],
-    ];
+      ];
 
-    if ($has_file_entity || $field_type == 'image' && !empty($widget_settings['preview_image_style'])) {
-      // Had the preview column if we have one.
-      $current['#header'][] = $this->t('Preview');
-    }
 
-    // Add the filename if there is no view builder.
-    if (!$has_file_entity) {
-      $current['#header'][] = $this->t('Filename');
-    }
+      if ($has_file_entity || $field_type == 'image' && !empty($widget_settings['preview_image_style'])) {
+        // Had the preview column if we have one.
+        $current['#header'][] = $this->t('Preview');
+      }
+
+      // Add the filename if there is no view builder.
+      if (!$has_file_entity) {
+        $current['#header'][] = $this->t('Filename');
+      }
 
-    // Add the remaining columns.
-    $current['#header'][] = $this->t('Metadata');
-    $current['#header'][] = ['data' => $this->t('Operations'), 'colspan' => 3];
-    $current['#header'][] = $this->t('Order', [], ['context' => 'Sort order']);
+      // Add the remaining columns.
+      $current['#header'][] = $this->t('Metadata');
+      $current['#header'][] = ['data' => $this->t('Operations'), 'colspan' => 3];
+      $current['#header'][] = $this->t('Order', [], ['context' => 'Sort order']);
+    }
 
     /** @var \Drupal\file\FileInterface[] $entities */
     foreach ($entities as $entity) {
@@ -406,6 +418,7 @@ class FileBrowserWidget extends EntityReferenceBrowserWidget {
           '#delta' => count($entities),
           '#default_value' => $weight,
           '#attributes' => ['class' => [$order_class]],
+          '#access' => $multiple,
         ],
       ];
 
@@ -421,36 +434,40 @@ class FileBrowserWidget extends EntityReferenceBrowserWidget {
    * {@inheritdoc}
    */
   public function massageFormValues(array $values, array $form, FormStateInterface $form_state) {
-    $ids = empty($values['target_id']) ? [] : explode(' ', trim($values['target_id']));
+    if (!isset($values['current']) || !is_array($values['current'])) {
+      return [];
+    }
+
     $return = [];
+    $ids = empty($values['target_id']) ? [] : preg_split('/\s/', trim($values['target_id']));
     foreach ($ids as $id) {
       $id = explode(':', $id)[1];
-      if (is_array($values['current']) && isset($values['current'][$id])) {
-        $item_values = [
-          'target_id' => $id,
-          '_weight' => $values['current'][$id]['_weight'],
-        ];
-        if ($this->fieldDefinition->getType() == 'file') {
-          if (isset($values['current'][$id]['meta']['description'])) {
-            $item_values['description'] = $values['current'][$id]['meta']['description'];
-          }
-          if ($this->fieldDefinition->getSetting('display_field') && isset($values['current'][$id]['meta']['display_field'])) {
-            $item_values['display'] = $values['current'][$id]['meta']['display_field'];
-          }
+      if (!isset($values['current'][$id])) {
+        continue;
+      }
+      $item_values = [
+        'target_id' => $id,
+        '_weight' => $values['current'][$id]['_weight'],
+      ];
+      if ($this->fieldDefinition->getType() == 'file') {
+        if (isset($values['current'][$id]['meta']['description'])) {
+          $item_values['description'] = $values['current'][$id]['meta']['description'];
         }
-        if ($this->fieldDefinition->getType() == 'image') {
-          if (isset($values['current'][$id]['meta']['alt'])) {
-            $item_values['alt'] = $values['current'][$id]['meta']['alt'];
-          }
-          if (isset($values['current'][$id]['meta']['title'])) {
-            $item_values['title'] = $values['current'][$id]['meta']['title'];
-          }
+        if ($this->fieldDefinition->getSetting('display_field') && isset($values['current'][$id]['meta']['display_field'])) {
+          $item_values['display'] = $values['current'][$id]['meta']['display_field'];
+        }
+      }
+      if ($this->fieldDefinition->getType() == 'image') {
+        if (isset($values['current'][$id]['meta']['alt'])) {
+          $item_values['alt'] = $values['current'][$id]['meta']['alt'];
+        }
+        if (isset($values['current'][$id]['meta']['title'])) {
+          $item_values['title'] = $values['current'][$id]['meta']['title'];
         }
-        $return[] = $item_values;
       }
+      $return[] = $item_values;
     }
 
-    // Return ourself as the structure doesn't match the default.
     usort($return, function ($a, $b) {
       return SortArray::sortByKeyInt($a, $b, '_weight');
     });
