public static function Attach::filePathValidate in FileField Sources 8
Validate file path.
Parameters
array $element: Form element.
\Drupal\Core\Form\FormStateInterface $form_state: Form state.
array $complete_form: Complete form.
File
- src/Plugin/ FilefieldSource/ Attach.php, line 328 
Class
- Attach
- A FileField source plugin to allow use of files within a server directory.
Namespace
Drupal\filefield_sources\Plugin\FilefieldSourceCode
public static function filePathValidate(array &$element, FormStateInterface $form_state, array &$complete_form) {
  $parents = $element['#parents'];
  array_pop($parents);
  $input_exists = FALSE;
  // Get input of the whole parent element.
  $input = NestedArray::getValue($form_state
    ->getValues(), $parents, $input_exists);
  if ($input_exists) {
    // Only validate if this source is enabled.
    if (!$input['sources']['attach']) {
      return;
    }
    // Strip slashes from the end of the file path.
    $filepath = rtrim($element['path']['#value'], '\\/');
    $form_state
      ->setValueForElement($element['path'], $filepath);
    $filepath = static::getDirectory($input['source_attach']);
    // Check that the directory exists and is writable.
    if (!\Drupal::service('file_system')
      ->prepareDirectory($filepath, FileSystemInterface::CREATE_DIRECTORY)) {
      $form_state
        ->setError($element['path'], t('Specified file attach path %path must exist or be writable.', [
        '%path' => $filepath,
      ]));
    }
  }
}