public function YamlFormManagedFileBase::postDelete in YAML Form 8
Delete any additional value associated with an element.
Currently only applicable to file uploads.
Parameters
array $element: An element.
\Drupal\yamlform\YamlFormSubmissionInterface $yamlform_submission: A form submission.
Overrides YamlFormElementBase::postDelete
File
- src/Plugin/ YamlFormElement/ YamlFormManagedFileBase.php, line 350 
Class
- YamlFormManagedFileBase
- Provides a base class form 'managed_file' elements.
Namespace
Drupal\yamlform\Plugin\YamlFormElementCode
public function postDelete(array &$element, YamlFormSubmissionInterface $yamlform_submission) {
  $yamlform = $yamlform_submission
    ->getYamlForm();
  $data = $yamlform_submission
    ->getData();
  $key = $element['#yamlform_key'];
  $value = isset($data[$key]) ? $data[$key] : [];
  $fids = is_array($value) ? $value : [
    $value,
  ];
  // Delete managed file record.
  foreach ($fids as $fid) {
    file_delete($fid);
  }
  // Remove the empty directory for all stream wrappers.
  $stream_wrappers = array_keys(\Drupal::service('stream_wrapper_manager')
    ->getNames(StreamWrapperInterface::WRITE_VISIBLE));
  foreach ($stream_wrappers as $stream_wrapper) {
    file_unmanaged_delete_recursive($stream_wrapper . '://yamlform/' . $yamlform
      ->id() . '/' . $yamlform_submission
      ->id());
  }
}