'managed_file', '#title' => $this->t('Managed @type', ['@type' => 'file & butter']), '#upload_location' => 'public://test', '#progress_message' => $this->t('Please wait...'), '#extended' => (bool) $extended, '#size' => 13, '#multiple' => (bool) $multiple, ]; if ($default_fids) { $default_fids = explode(',', $default_fids); $form['nested']['file']['#default_value'] = $extended ? ['fids' => $default_fids] : $default_fids; } $form['textfield'] = [ '#type' => 'textfield', '#title' => $this->t('Type a value and ensure it stays'), ]; $form['submit'] = [ '#type' => 'submit', '#value' => $this->t('Save'), ]; return $form; } /** * {@inheritdoc} */ public function submitForm(array &$form, FormStateInterface $form_state) { if ($form['#tree']) { $uploads = $form_state->getValue(['nested', 'file']); } else { $uploads = $form_state->getValue('file'); } if ($form['nested']['file']['#extended']) { $uploads = $uploads['fids']; } $fids = []; foreach ($uploads as $fid) { $fids[] = $fid; } \Drupal::messenger()->addStatus($this->t('The file ids are %fids.', ['%fids' => implode(',', $fids)])); } }